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, plugin, authentication_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 系统)