记录在centos7 中安装MySQL过程

1、下载MySQL安装包:下载地址:https://dev.mysql.com/downloads/mysql/

Select Operating System: 选择 Red Hat ,CentOS 是基于红帽的,Select OS Version: 选择 linux 7

 

snort centos8安装 centos8安装过程_mysql

2、选择 RPM Bundle 点击 Download,下载时需要登录Oracle账号

 

snort centos8安装 centos8安装过程_数据库_02

3、下载好后的安装包

 

snort centos8安装 centos8安装过程_snort centos8安装_03

4、登录linux服务器,具体过程就不写了,我用的是Xshell.

 

snort centos8安装 centos8安装过程_mysql_04

5、通过 rpm -qa | grep mariadb 命令查看 mariadb 的安装包(centos7默认安装了mariadb,需要卸载掉)

 

snort centos8安装 centos8安装过程_MySQL_05

6、通过 rpm -e mariadb-libs-5.5.65-2.el7.x86_64 --nodeps 命令装卸 mariadb

 

snort centos8安装 centos8安装过程_MySQL_06

7、通过 rpm -qa | grep mariadb 命令再次查看 mariadb 的安装包

 

snort centos8安装 centos8安装过程_MySQL_07

8、通过 cd /usr/local/ 命令进入根目录下的usr目录下的local目录,这个目录是放一些本地的共享资源的

 

snort centos8安装 centos8安装过程_mysql_08

(截图非本机,自己操作时忘截图了)

9、通过 ll 命令查看一下当前目录下的目录结构

 

snort centos8安装 centos8安装过程_snort centos8安装_09

(截图非本机)

10、通过 mkdir mysql 命令 在当前目录下创建一个名为 mysql 的目录

 

snort centos8安装 centos8安装过程_mysql_10

(截图非本机)

11、通过 ll 命令查看一下当前目录下的目录结构,刚创建的 mysql 目录有了

 

snort centos8安装 centos8安装过程_mysql_11

(截图非本机)

12、通过 cd mysql 命令进入 mysql 目录

 

snort centos8安装 centos8安装过程_数据库_12

(截图非本机)

13、通过FTP工具将MySQL的安装包上传到该目录(图中使用的是WinSCP)

 

snort centos8安装 centos8安装过程_MySQL_13

14、在Xshell中通过 ll 命令查看一下当前目录下的目录结构

 

snort centos8安装 centos8安装过程_mysql_14

(截图非本机)

15、通过 tar -xvf mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar  命令解压 tar 包

 

snort centos8安装 centos8安装过程_MySQL_15

(截图非本机,截图中的是mysql8.0.11)

16、通过 rpm -ivh mysql-community-common-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安装 common

 

snort centos8安装 centos8安装过程_数据库_16

(截图非本机)

17、如上按顺序安装以下安装包

通过 rpm -ivh mysql-community-libs-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安装 libs

通过 rpm -ivh mysql-community-client-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安装 client

通过 rpm -ivh mysql-community-server-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安装 server

 

18、通过 rpm -qa | grep mysql 命令查看 mysql 的安装包

 

snort centos8安装 centos8安装过程_snort centos8安装_17

19、通过以下命令,完成对 mysql 数据库的初始化和相关配置

(此处有个坑,下面第28步 mysql8.0设置不区分大小,必须在数据库初始化时操作)

mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;

——————

运行命令:mysqld --initialize; 报错

 

snort centos8安装 centos8安装过程_MySQL_18

解决措施

安装libaio

运行命令:yum install -y libaio

安装后再初始化mysql就可以了

——————

 

20、通过 cat /var/log/mysqld.log | grep password 命令查看数据库的密码

 

21、通过 mysql -uroot -p 敲回车键进入数据库登陆界面

(复制密码即可,另外密码输入后也不会显示)

 

snort centos8安装 centos8安装过程_mysql_19

(截图非本机)

22、通过 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ‘123456'; 命令来修改密码

 

snort centos8安装 centos8安装过程_mysql_20

(截图非本机)

23、通过 exit; 命令退出 MySQL,然后通过新密码再次登陆

 

24、创建用户

一般不会使用root登录,需创建一个新的用户来使用mysql数据库;

创建用户命令

create user 'test'@'%' identified with mysql_native_password by '123456';

命令中的test为用户名,123456为登录密码

 

snort centos8安装 centos8安装过程_数据库_21

(截图非本机)

25、授权远程登录

创建用户后需设置允许远程访问才可在外网链接MySQL数据库

需分别执行以下命令:

grant all privileges on *.* to 'test'@'%' with grant option;

flush privileges;

26、执行成功后需开启3306端口,MySQL默认端口为3306,开启端口命令,需先退出MySQL

exit

firewall-cmd --zone=public --add-port=3306/tcp --permanent

systemctl restart firewalld.service

27、开启成功后,用MySQL数据库的客户端远程链接测试

 

snort centos8安装 centos8安装过程_mysql_22

28、设置数据库不区分大小写和字符集

执行如下命令

Vi /etc/my.cnf  进入配置文件

进入编辑模式后在最后加入

lower_case_table_names=1

default-character-set=utf8mb4

退出并保存(按ESC+:wq 保存退出),修改完成后需重启MySQL

Systemctl restart mysqld

 

我执行以上命令后报错,把配置文件最后2行注释后又可正常运行,问题还未解决

 

snort centos8安装 centos8安装过程_数据库_23

—报错问题跟踪—

 

关于字符集问题,status命令,看到mysql字符集已经是“utf8mb4”

 

snort centos8安装 centos8安装过程_snort centos8安装_24

 

查看mysql日志 vi /var/log/mysqld.log

提示“unknown variable 'default-character-set=utf8mb4'”

查询处理方法如下

①是在MySQL的配置/etc/my.cnf中将default-character-set=utf8mb4 修改为 character-set-server = utf8mb4,但是这需要重启MySQL服务,如果你的MySQL服务正在忙,那这样的代价会比较大。

 

②是用mysqlbinlog --no-defaults mysql-bin.000001 命令执行

 

考虑到已经查询到mysql的字符集是utf8mb4,所以我没去调整

 

关于大小写问题,查询发现mysql8.0需要在初始化时配置lower_case_table_names=1

否则会报错。


 

 



我参照上述文档,删除mysql数据文件,重新设置

命令如下

service mysqld stop   //停止mysql服务

rm -rf /var/lib/mysql    //删除mysql文件夹所有数据

service mysql start   //重启mysql服务

 

重启mysql时报错,

 

snort centos8安装 centos8安装过程_数据库_25

 

所以重新初始化一遍数据库存

命令如下

mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;

然后账号等相关设置重新操作一遍

 

mysql中通过查询命令“show variables like '%lower_case%'” 大小写设置

 

snort centos8安装 centos8安装过程_mysql_26