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
原文地址:https://www.cnblogs.com/eagle6688/p/8975090.html