ip is not allowed to connect to this Mysql server
本文介绍mysql8.4外部远程连接时报“ ip is not allowed to connect to this Mysql server”的处理过程。刚刚升级到mysql8.4版本的同学,一定会碰到此问题,原因是mysql8.4版本后,mysql修改了验证方式。
报错效果如下(这里是用工具连接本地虚拟机):
下面咱们来处理。
1、修改验证方式
上面说了,mysql8.X默认不使用mysql_native_password验证密码了。新模式为 caching_sha2_password,需要启用一下旧模式。mysql_native_password以插件的方式提供,默认没有启用。命令行连接mysql,先看一下目前情况。
show plugins;
1.1、开启插件
打开my.cnf,在最后加入配置代码:
[mysqld] ##文件中有【mysqld】这个段就在最后面加,没有就自己加上
mysql_native_password=ON ## 开启本地密码验证插件
保存后,重启MySQL服务。
再次执行show plugins,可以看到mysql_native_password插件已经启用了。
1.2、修改验证方式
首先,先查一下root用户的验证方式:
select user, host, plugin from mysql.user;
效果如下:
目前还不是mysql_native_password验证方式,咱们改一下:
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '123456';
再次看一下root用户的验证方式:
可以看到,已经改过来了。但是也看到了,root用户目前智能localhost连接,咱们再改一下。
1.3、修改访问的ip
update mysql.user set host = '%' where user ='root';
flush privileges;
再看一下root用户的host值,效果如下:
至此,处理完毕。远程机器已经可以连接到mysql服务了。希望对大家有帮助。
//~~