CentOS 7 安装MySQL 8.0.11

Posted 光焱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7 安装MySQL 8.0.11相关的知识,希望对你有一定的参考价值。

1. 下载安装包

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar

下载完成后解压:

tar -xvf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar

这个链接的文件包含MySQL所有组件,而我们安装需要的组件如下:

(1) mysql-community-common-8.0.11-1.el7.x86_64.rpm

(2) mysql-community-libs-8.0.11-1.el7.x86_64.rpm

(3) mysql-community-client-8.0.11-1.el7.x86_64.rpm

(4) mysql-community-server-8.0.11-1.el7.x86_64.rpm

你也可以按照这个列表逐个下载,本文为了方便,选择了全集包。

2. 查询并删除CentOS自带的Mariadb

(1) 查询:

rpm -qa|grep mariadb

得到结果:

(2) 删除:

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.centos.x86_64

3.按照1中的列表顺序逐个安装MySQL所需组件

yum localinstall -y mysql-community-common-8.0.11-1.el7.x86_64.rpm
yum localinstall -y mysql-community-libs-8.0.11-1.el7.x86_64.rpm
yum localinstall -y mysql-community-client-8.0.11-1.el7.x86_64.rpm
yum localinstall -y mysql-community-server-8.0.11-1.el7.x86_64.rpm

 4. 检查安装结果

rpm -qa | grep mysql

5. 启动

systemctl start mysqld
systemctl status mysqld

MySQL在启动过程中会进行如下操作:

(1) 初始化MySQL;

(2) 在/var/lib/mysql目录下生成一个SSL证书和密钥文件;

(3) 安装validate_password plugin;

(4) 创建一个超级用户帐号\'root\'@\'localhost,并且为其生成一个随机密码存放在/var/log/mysqld.log文件。

6. 修改密码

安装完成之后,通过下面的方式找到root默认密码,然后登录mysql进行修改:

grep \'temporary password\' /var/log/mysqld.log
mysql -u root -p
ALTER USER \'root\'@\'localhost\' IDENTIFIED BY \'MyNewPass1!\';

密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。

7. 添加账户

为了安全起见,强烈建议在远程连接的时候使用非root账户。创建test用户,密码为“MyNewPass1!”,为其分配所有权限。

CREATE USER \'test\'@\'localhost\' IDENTIFIED BY \'MyNewPass1!\';
GRANT ALL PRIVILEGES ON *.* TO \'test\'@\'localhost\' WITH GRANT OPTION;

CREATE USER \'test\'@\'%\' IDENTIFIED BY \'password\';
GRANT ALL PRIVILEGES ON *.* TO \'test\'@\'%\'
WITH GRANT OPTION;
flush privileges;

注意,每次执行完create user命令,一定要通过以下命令查看创建用户是否成功:

use mysql;
select host, user from user;

对于新创建的账户,MySQL 8默认它的密码插件为caching_sha2_password,而现有的客户端工具大都只支持mysql_native_password插件,如果你用现有版本的客户端工具链接会报错“authentication plugin caching_sha2_password cannot be loaded”。

解决方法是改变用户的密码插件:

ALTER USER \'test\'@\'%\' IDENTIFIED WITH mysql_native_password BY \'MyNewPass1!\';
flush privileges;

然后需要修改配置文件:

sudo vi /etc/my.cnf

重启MySQL:

systemctl restart mysqld

查看用户和权限是否创建成功:

select user, host, pluginauthentication_string from mysql.user;
SHOW GRANTS FOR \'test\'@\'%\';

 8. 设置开机启动

systemctl enable mysqld

 9. 开放端口

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports

以上是关于CentOS 7 安装MySQL 8.0.11的主要内容,如果未能解决你的问题,请参考以下文章

Linux 下安装mysql 8.0.11(CentOS 7.4 系统)

centos7安装mysql8.0

CentOS7 下源码安装MySQL 8.0.11

CentOS7 下源码安装MySQL 8.0.11

centos7.2 本地yum安装mysql8.0.11-1

centOS7 下 安装mysql8.x