Skip to main content

关系型数据库服务器-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。