1130 - Host XXX is not allowed to connect to this MySQL server 错误提示的解决办法。
问题描述:
在使用navicat连接虚拟机(centos7)内部的mysql时,测试连接报错1130,且当前防火墙处于关闭状态、mysql服务处于启动状态、测试连接的ip以及主机密码都没有输错。
问题解决:
-
一开始的解决办法是直接在mysql的配置文件里面跳过权限认证,即不需要输入密码就能访问mysql。再测试连接,果然连接成功。
vi /etc/my.cnf
文件末尾添加
skip-grant-tables
-
后来经过分析,发现既然跳过权限可以成功访问,说明原因不在于外部及其mysql本身上,问题就在于权限上面。那我就先查询一下当前root用户的访问权限,具体步骤如下
-
进入mysql
mysql -u root -p
输入密码。 -
使用mysql 数据库
use mysql;
。 -
查询当前用户权限
select user,host from user;
查询结果我当时是 root对应的localhost ,意思是只有本地主机访问mysql的连接,那么虚拟机之外的访问自然就不行,所以需要将这个localhost修改为 所有主机都能访问,具体如下
-
更新语句
update user set host = '%' where user = 'root';
。 -
更新完之后,要使配置生效,即刷新权限。
flush privileges;
-
到目前为止,我遇到的这个问题就完美解决了,不放心的话可以重启mysql服务试试。重启命令
systemctl restart mysqld
。
-