关系型数据库服务器-MySQL
关系型数据库服务器-MySQL
:::note
由于MariaDB数据库是MySQL数据库的另一个分支,因此不能将MySQL和MariaDB安装在同一操作系统中,如果这样做了,会导致数据库无法正常启动。
:::
概述
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下公司。在WEB应用方面,MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样增加了速度并提高了灵活性。
配置环境
89执行如下命令,在root权限下停止并关闭防火墙。
systemctl stop firewalld
systemctl disable firewalld
90执行如下命令,修改SELINUX为disabled。
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
91执行如下命令,创建组、用户和密码。
groupadd mysql
useradd -g mysql mysql
passwd mysql
92创建数据盘。
(1)执行如下命令,创建分区(以“/dev/vdb”为例,请根据实际情况创建)。
fdisk /dev/vdb
输入n,按回车确认。
输入p,按回车确认。
输入1,按回车确认。
采用默认配置,按回车确认。
输入w,按回车保存。
(2)执行如下命令,创建文件系统(以xfs为例,请根据实际情况创建)。
mkfs.xfs /dev/vdb1
(3)执行如下命令,挂载分区到“/data”以供操作系统使用。
mkdir /data
mount /dev/vdb1 /data
(4)执行如下命令,在文件中添加如图4.20所示的最后一行内容(其中,“/dev/vdb1”为示例,具体名称以实际情况为准)。
vi /etc/fstab
#After editing this file,run 'systemctl daemon-reload' to update systemd
units generated from this file.
defaults /dev/mapper/use-root ext4 11 UUID=ff5d51ad-8d78-41ad-960a-d6 foc88961c1 /boot ext4 defaults 12 vfat UUID=329A-28D1 /boot/efi umask0077,shortname=winnt02 /dev/mapper/use-swap swap swap defaults 00 /data xfs defaults12 /dev/vdb1 [mysqlalocalhost ~]s)
93执行如下命令,创建数据库目录并且授权。
mkdir -p /data/mysql
cd /data/mysql
mkdir data tmp run log
chown -R mysql:mysql /data
安装过程
以root用户执行如下命令进行安装。
dnf install mysql
功能测试
94修改“/etc/my.cnf”配置文件,修改后的文件内容示例如下:
[mysqld_safe]
log-error=/data/mysql/log/mysql.log
pid-file=/data/mysql/run/mysqld.pid
[mysqldump]
quick
[mysql]
no-auto-rehash
[client]
default-character-set=utf8
[mysqld]
basedir=/usr/local/mysql
socket=/data/mysql/run/mysql.sock
tmpdir=/data/mysql/tmp
datadir=/data/mysql/data
default_authentication_plugin=mysql_native_password
port=3306
user=mysql
95在root权限下执行如下命令,修改“/etc/my.cnf”文件的组和用户为mysql:mysql。
chown -R mysql:mysql /etc/my.cnf
96执行如下命令,配置环境变量。
echo export PATH=$PATH:/usr/local/mysql/bin >> /etc/profile
source /etc/profile
97在root权限下执行如下命令,初始化数据库。
mysqld --defaults-file=/etc/my.cnf --initialize
2020-03-18T03:27:13.702385Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.17) initializing of server in progress as process 34014
2020-03-18T03:27:24.112453Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: iNat=)#V2tZu
2020-03-18T03:27:28.576003Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.17) initializing of server has completed
:::note
本步骤会生成初始密码,请注意保存,登录数据库时需要使用。
:::
98在root权限下执行如下命令,修改文件权限,并先以root用户检测mysql配置,然后用mysql用户启动数据库。
chmod 777 /usr/local/mysql/support-files/mysql.server
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
su - mysql
#启动数据库
service mysql start
99执行如下命令,登录数据库。
/usr/local/mysql/bin/mysql -uroot -p -S /data/mysql/run/mysql.sock

:::note
提示输入密码时,请输入3产生的初始密码。
:::
100登录数据库以后,修改通过root用户登录数据库的密码,创建全域root用户并进行授权。
mysql> alter user 'root'@'localhost' identified by "uos12#$";
mysql> create user 'root'@'%' identified by 'uos12#$';
mysql> grant all privileges on . to 'root'@'%';
mysql> flush privileges;
mysql> create user 'root'@''identified by Query OK,0 rows affected (0.01 sec) mysql>grant all privileges on*,*to'root'@'%'; Query OK,0 rows affected (0.05 sec) mysql> flush privileges ; Query oK,rows affected (0.00 sec))
101执行exit命令,退出MySQL。
No comments to display
No comments to display