mysql8设置远程连接

今天centos7安装了mysql8.0过后远程登录数据库报错
mysql8设置远程连接
1.首先查看防火墙状态

防火墙版本的不同命令也会有不同

0.4的命令为

systemctl status firewall.service

0.5的命令为

systemctl status firewalld

防火墙没有运行

2.命令登入服务器mysql

3.执行下面语句添加权限

use mysql;

select host, user, authentication_string, plugin from user;

查看user表的root用户Host字段是localhost,说明root用户只能本地登录,现在把他改成远程登录

update user set host=’%’ where user=‘root’;

4.刷新权限

所有操作后,应执行

FLUSH PRIVILEGES;

执行后继续连接发现还是报错
mysql8设置远程连接
查找问题后发现

MySQL8.0之前的版本密码加密规则:mysql_native_password,

MySQL8.0密码加密规则:caching_sha2_password

不一样

5.修改mysql加密规则

输入命令

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;

加密规则改了也同样设置密码

ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘新的密码’;

再试
mysql8设置远程连接