做产品推广得网站,注册qq空间申请,电子商务毕业设计 网站建设,深圳傻瓜式网站建设公司好吗1 MySQL数据库的相关概念
1.1 数据库中的专业术语
1.1.1 数据库 (DB)
数据库是指:保存有组织的数据的容器(通常是一个文数据库 (database)件或一组文件)。
1.1.2 数据库管理系统 (DBMS)
数据库管理系统(DBMS)又称为数据库软件(产品)#xff0c;用于管理DB中的数据
注意:…1 MySQL数据库的相关概念
1.1 数据库中的专业术语
1.1.1 数据库 (DB)
数据库是指:保存有组织的数据的容器(通常是一个文数据库 (database)件或一组文件)。
1.1.2 数据库管理系统 (DBMS)
数据库管理系统(DBMS)又称为数据库软件(产品)用于管理DB中的数据
注意:人们通常用数据库这个术语来代表他们使用的数据库软件。这是不正确的它是引起混淆的根源。确切地说数据库软件应称为DBMS (数据库管理系统 )。数据库是通过DBMS创建和操纵的容器。数据库可以是保存在硬设备上的文件但也可以不是。在很大程度上说数据库究竟是文件还是别的什么东西并不重要因为你并不直接访问数据库: 你使用的是DBMS它替你访问数据库
1.1.3 表 (table)
表指的是某种特定类型数据的结构化清单
这里关键的一点在于存储在表中的数据是一种类型的数据或一个清单。决不应该将顾客的清单与订单的清单存储在同一个数据库表中。这样做将使以后的检索和访问很困难。应该创建两个表每个清单一个表。数据库中的每个表都有一个名字用来标识自己。此名字是唯一的这表示数据库中没有其他表具有相同的名字。
表名:表名的唯一性取决于多个因素如数据库名和表名等的结合。这表示,虽然在相同数据库中不能两次使用相同的表名但在不同的数据库中却可以使用相同的表名。
1.1.4 列 (column)
表由列组成列中存储着表中某部分的信息列(column)表中的一个字段。 所有表都是由一个或多个列组列
理解列的最好办法是将数据库表想象为一个网格。网格中每一列存储着一条特定的信息。例如在顾客表中一个列存储着顾客编号另一个列存储着顾客名而地址、城市、州以及邮政编码全都存储在各自的列中。
1.1.5 行 (row)
行指表中的一个记录表中的数据是按行存储的所保存的每个记录存储在自己的行内。如果将表想象为网格网格中垂直的列为表列水平行为表行。例如顾客表可以每行存储一个顾客。表中的行数为记录的总数。
1.1.6 结构化查询语句(SQL)
SQL是结构化查询语言Structured Query Language的缩写。SQL是一种专门用来与数据库通信的语言。
与其他语言如英语以及Java和Visual Basic这样的程序设计语言 不一样SQL由很少的词构成这是有意而为的。设计SQL的目的是很好 地完成一项任务即提供一种从数据库中读写数据的简单有效的方法。
SQL有如下的优点
SQL不是某个特定数据库供应商专有的语言。几乎所有重要的 DBMS都支持SQL所以学习此语言使你几乎能与所有数据库 打交道。SQL简单易学。它的语句全都是由描述性很强的英语单词组成 而且这些单词的数目不多。SQL尽管看上去很简单但它实际上是一种强有力的语言灵活 使用其语言元素可以进行非常复杂和高级的数据库操作。
1.2 关系型数据库的概念
关系型数据库是指使用关系模型进行数据组织和管理的数据库其中数据以二维表格的形式表示表格中的每一行表示一个数据记录表格中的每一列表示一个数据属性。关系型数据库最早由IBM的研究员E.F.Codd在20世纪70年代提出并成为了当今最流行的数据库类型之一。
1.2.1 关系型数据库的特性和优点 数据结构的规范性和可靠性。关系型数据库采用严格的数据结构规范和约束确保数据的完整性、一致性和可靠性避免了数据的冗余和重复提高了数据的可维护性和可管理性。 数据操作的灵活性和复杂性。关系型数据库支持SQL语言进行数据的操作和管理SQL语言具有强大的灵活性和复杂性能够满足各种数据处理需求包括数据的查询、插入、更新和删除等。 数据共享的安全性和可控性。关系型数据库支持数据的共享和访问控制能够保证数据的安全性和可控性只有经过授权的用户才能访问和操作数据避免了数据泄露和损坏的风险。数据的备份和恢复 关系型数据库支持数据的备份和恢复能够在系统故障或数据丢失的情况下快速恢复数据保证数据的安全性和可靠性。
1.3 主流关系型数据库的对比
1.3.1 MySQL
MySQL是最受欢迎的开源SQL数据库管理系统它由 MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用也可以将它嵌入到一个大配置(mass- deployed)的软件中去。 与其他数据库管理系统相比MySQL具有以下优势
MySQL是一个关系数据库管理系统。MySQL是开源的。MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。MySQL服务器工作在客户/服务器或嵌入系统中。有大量的MySQL软件可以使用。
1.3.2 SQL Server
SQL Server是由微软开发的数据库管理系统是Web上最流行的用于存储数据的数据库它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。目前最新版本是SQL Server 2005它只能在Windows上运行操作系统的系统稳定性对数据库十分重要。并行实施和共存模型并不成熟很难处理日益增多的用户数和数据卷伸缩性有限。
SQL Server 提供了众多的Web和电子商务功能如对XML和Internet标准的丰富支持通过Web对数据进行轻松安全的访问具有强大的、灵活的、基于Web的和安全的应用程序管理等。而且由于其易操作性及其友好的操作界面深受广大用户的喜爱。
1.3.3 Oracle
该公司成立于1977年最初是一家专门开发数据库的公司。Oracle在数据库领域一直处于领先地位。 1984年首先将关系数据库转到了桌面计算机上。然后Oracle5率先推出了分布式数据库、客户/服务器结构等崭新的概念。Oracle 6首创行锁定模式以及对称多处理计算机的支持最新的Oracle 8主要增加了对象技术成为关系—对象数据库系统。目前Oracle产品覆盖了大、中、小型机等几十种机型Oracle数据库成为世界上使用最广泛的关系数据系统之一。
Oracle数据库产品具有以下优良特性。
兼容性Oracle产品采用标准SQL并经过美国国家标准技术所(NIST)测试。与IBM SQL/DS、DB2、INGRES、IDMS/R等兼容。可移植性Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在70种以上不同的大、中、小型机上可在VMS、DOS、UNIX、Windows等多种操作系统下工作。可联结性Oracle能与多种通讯网络相连支持各种协议(TCP/IP、DECnet、LU6.2等)。高生产率Oracle产品提供了多种开发工具能极大地方便用户进行进一步的开发。开放性Oracle良好的兼容性、可移植性、可连接性和高生产率使Oracle RDBMS具有良好的开放性。
2 在Linux系统中搭建MySQL数据库
2.1 下载MySQL8.0
直接到官网下载最新版即可
下载地址https://dev.mysql.com/downloads/mysql/
选择linux通用版本 选择glibc 64位压缩包 2.2 解压安装
上传文件至服务器本次演示mysql上传位置/appusr/apphome
解压执行命令
tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz重命名为mysql-8.0
mv mysql-8.0.32-linux-glibc2.12-x86_64 mysql-8.0进入mysql-8.0的目录新建data文件夹
[rootcentos-tianmen apphome]# cd mysql-8.0/[rootcentos-tianmen mysql-8.0]# mkdir data
[rootcentos-tianmen mysql-8.0]# ll
总用量 296
drwxr-xr-x. 2 7161 31415 4096 12月 17 00:54 bin
drwxr-xr-x. 2 root root 6 3月 19 14:42 data
drwxr-xr-x. 2 7161 31415 56 12月 17 00:54 docs
drwxr-xr-x. 3 7161 31415 4096 12月 17 00:54 include
drwxr-xr-x. 6 7161 31415 201 12月 17 00:54 lib
-rw-r--r--. 1 7161 31415 283374 12月 16 23:34 LICENSE
drwxr-xr-x. 4 7161 31415 30 12月 17 00:54 man
-rw-r--r--. 1 7161 31415 666 12月 16 23:34 README
drwxr-xr-x. 28 7161 31415 4096 12月 17 00:54 share
drwxr-xr-x. 2 7161 31415 77 12月 17 00:54 support-files
新增tmp、log目录后面使用
[rootcentos-tianmen mysql-8.0]# mkdir log
[rootcentos-tianmen mysql-8.0]# mkdir tmp2.3 创建mysql用户组及用户
新增用户组mysql
groupadd mysql新增用户mysql 密码mysql
useradd -g mysql mysql授权指向mysql的安装目录
chown -R mysql.mysql /appusr/apphome/mysql-8.0/2.4 初始化数据库
进入mysql安装目录我的安装目录为/appusr/apphome/mysql-8.0
[rootcentos-tianmen mysql-8.0]# cd /appusr/apphome/mysql-8.0/
[rootcentos-tianmen mysql-8.0]# pwd
/appusr/apphome/mysql-8.0初始化数据库
[rootcentos-tianmen mysql-8.0]# ./bin/mysqld --usermysql --basedir/appusr/apphome/mysql-8.0/ --datadir/appusr/apphome/mysql-8.0/data/ --initialize ;
2023-03-19T08:42:40.094583Z 0 [Warning] [MY-011070] [Server] Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it is deprecated and will be removed in a future release.
2023-03-19T08:42:40.094889Z 0 [System] [MY-013169] [Server] /appusr/apphome/mysql-8.0/bin/mysqld (mysqld 8.0.32) initializing of server in progress as process 53132
2023-03-19T08:42:40.116956Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-03-19T08:42:40.999879Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-03-19T08:42:43.037019Z 6 [Note] [MY-010454] [Server] A temporary password is generated for rootlocalhost: cFY9lpinfc6记住临时密码cFY9lpinfc6
2.5 配置Mysql
修改配置文件
vi /etc/my.cnfmy.cnf配置文件自用
#[mysqld]
#datadir/var/lib/mysql
#socket/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd#[mysqld_safe]
#log-error/var/log/mariadb/mariadb.log
#pid-file/var/run/mariadb/mariadb.pid#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d[mysql]
#basedir/appusr/apphome/mysql-8.0
#datadir/appusr/apphome/mysql-8.0/data/
socket/appusr/apphome/mysql-8.0/tmp/mysql.sock
port3306
usermysql
#skip-grant-tables
# 指定日志时间为系统时间
#log_timestampsSYSTEM
#log-error/appusr/apphome/mysql-8.0/log/mysql.err
# # 指定字符集为utf8因为mysql8.0中的默认字符集为utfmb4会和其他程序引起兼容性问题
default-character-setutf8
#
#
[mysqld]
basedir/appusr/apphome/mysql-8.0
datadir/appusr/apphome/mysql-8.0/data
socket/appusr/apphome/mysql-8.0/tmp/mysql.sock
port3306
usermysql
log_timestampsSYSTEM
collation-server utf8_unicode_ci
character-set-server utf8
# # 指定默认认证的加密方式mysql8.0中默认方式为caching_sha2_password引起老版本兼容性问题
default_authentication_plugin mysql_native_password
#skip-grant-tables[mysqld_safe]
log-error/appusr/apphome/mysql-8.0/log/mysqld_safe.err
pid-file/appusr/apphome/mysql-8.0/tmp/mysqld.pid
socket/appusr/apphome/mysql-8.0/tmp/mysql.sock
#skip-grant-tables[mysql.server]
#basedir/appusr/apphome/mysql-8.0
datadir/appusr/apphome/mysql-8.0/data
socket/appusr/apphome/mysql-8.0/tmp/mysql.sock
port3306
usermysql
#skip-grant-tables[mysqladmin]
socket/appusr/apphome/mysql-8.0/tmp/mysql.sock2.6 建立Mysql服务
进入mysql安装目录
cd /appusr/apphome/mysql-8.0/添加Mysql到系统服务
cp -a ./support-files/mysql.server /etc/init.d/mysql
chmod x /etc/init.d/mysql
chkconfig --add mysql检查服务是否生效
chkconfig --list mysql如图 [rootcentos-tianmen mysql-8.0]# cp -a ./support-files/mysql.server /etc/init.d/mysql
[rootcentos-tianmen mysql-8.0]# chmod x /etc/init.d/mysql
[rootcentos-tianmen mysql-8.0]# chkconfig --add mysql
[rootcentos-tianmen mysql-8.0]# chkconfig --list mysql注该输出结果只显示 SysV 服务并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 要列出 systemd 服务请执行 systemctl list-unit-files。查看在具体 target 启用的服务请执行systemctl list-dependencies [target]。mysql 0:关 1:关 2:开 3:开 4:开 5:开 6:关
[rootcentos-tianmen mysql-8.0]#启动mysql服务
service mysql start如有报错文件不存在新建缺失的文件授权mysql
[rootcentos-tianmen mysql-8.0]# service mysql start;
Starting MySQL... SUCCESS!查看服务状态
service mysql status;
[rootcentos-tianmen mysql-8.0]# service mysql status;SUCCESS! MySQL running (54691)2.7 修改密码
进入mysql安装目录的bin目录
cd /appusr/apphome/mysql-8.0/bin/使用上面的临时密码登录执行命令
./mysql -uroot -p如图
[rootcentos-tianmen bin]# ./mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.32Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type help; or \h for help. Type \c to clear the current input statement.mysql 修改密码
ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 新密码;OK到此安装完成了
2.8 开启远程访问
在登录状态执行下述SQL
mysql CREATE USER root% IDENTIFIED BY 密码;
Query OK, 0 rows affected (0.03 sec)mysql GRANT ALL ON *.* TO root%;
Query OK, 0 rows affected (0.02 sec)mysql ALTER USER root% IDENTIFIED WITH mysql_native_password BY 密码;
Query OK, 0 rows affected (0.01 sec)mysql FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.02 sec)