Centos7安装MySQL8.x

记录CentOS7 安装Mysql8 步骤和碰到的问题

1. 检查清理原有mysql

1
rpm -qa | grep mysql

使用以下命令依次删除上面的程序
结果:

1
yum remove mysql-xxx-xxx

2. 下载mysql repo源

centos的yum 源中默认是没有mysql的mysql官网下载链接:mysql repo下载地址

下载上传到服务器后执行如下命令安装:

1
2
3
4
5
 #安装repo
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
#更新 yum 缓存
yum clean all
yum makecache

3. 使用 yum安装mysql

当我们在使用yum安装mysql时,yum默认会从yum仓库中安装mysql最新的GA版本。如何选择自己的版本:

3.1 查看mysql yum仓库中mysql版本

1
yum repolist all | grep mysql

3.2 使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态

1
2
3
yum-config-manager --disable  mysql57-community

yum-config-manager --enable mysql80-community

3.3 安装并启动

1
2
 #安装
yum install mysql-community-server

3.4 获取初始密码,登陆并修改初始密码

注意,mysql默认表明大小写敏感,如果需要修改,安装完成启动前进行,否则启动后再修改会导致启动报错。
修改方式,在 /etc/my.cnf 添加 lower_case_table_names=1

1
2
3
vi /etc/my.cnf
#在文件最后添加参数
lower_case_table_names=1
1
2
3
 #启动mysql 服务
systemctl start mysqld.service
cat /var/log/mysqld.log | grep password

passwd
密码长度,复杂度必须满足要求。参考:mysql8密码策略修改

1
2
3
4
#登陆(使用默认密码)
mysql -u root -p
#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

3.5 将mysql 服务加入开机启动项,并启动mysql进程

1
2
systemctl enable mysqld.service
systemctl start mysqld.service

4. 开启mysql远程访问权限

使用授权的方式

1
2
3
4
5
6
mysql -u root -p

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;

FLUSH PRIVILEGES;

5. 问题

在使用 Navicat for Mysql连接mysql 8.0时会报如下错误:Authentication plugin ‘caching_sha2_password’ cannot be loaded
是因为mysql8引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式。可以更换最新版本的Navicat for Mysql客户端即可。