1.失败1130
1130 - Host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to this MySQL server
a.问题分析:
某某ip不被允许连接这个MySQL服务,排除服务器防火墙没开放3306端口的情况
b.解决办法:
连接远端服务器,登录进去到MySQL,查看名为mysql的数据库中的一个名字叫user的表,一般来讲如果出现1130代码问题,大概率是MySQL登录用户的host权限是localhost或其他,把登录用户对应的host改成%即可,%意为任意ip地址
c.解决步骤
--登录MySQL
mysql -u root -p
--切换名为mysql的数据库
use mysql;
--查看user表的user,host字段
select user,host from user;
--如果对应的登录账号host字段值不是%,改成%
update user set host='%' where user='root';
--修改后刷新一下MySQL自己用到的表,或者退出MySQL,重启一下MySQL服务:systemctl restart mysqld
flush privileges;
问题解决到这里,不是解决了就是出现其他问题了,哈哈哈!!!
2.接着说可能会出现的其他问题:失败2059
2059 - Authentication plugin ‘caching_sha2_password’ cannot be loaded: xxxxxxxxxx
a.问题分析:
这个问题存在于MySQL8.0及以后的版本,MySQL8.0对密码的加密方式进行了修改,由原来的mysql_native_password方式,改成了caching_sha2_password方式,导致了支持mysql_native_password方式的Navicat无法成功连接MySQL8.0
b.问题解决:
修改MySQL数据库的密码加密方式,并使用加密方式修改覆盖原来的密码,保证相同密码加密后的一致,密码改成Navicat支持的mysql_native_password方式
c.解决步骤:
--连接MySQL数据库,切换数据库为mysql
use mysql;
--查看加密方式
select user,plugin from user;
--如果为caching_sha2_password,修改成mysql_native_password
update user set plugin ='mysql_native_password' where user='root';
--使用mysql_native_password加密方式重新修改一下密码,要不两种加密方式的密码会不一致,'root'@'%'这百分号指的是上面修改的那个host列的值,如果是其他的就写其他的:'root'@'xxx'
alter user 'root'@'%' identified with mysql_native_password by '满足MySQL8.0密码策略的密码';
--修改后刷新一下MySQL自己用到的表,或者退出MySQL,重启一下MySQL服务:systemctl restart mysqld
flush privileges;