连接Mysql服务器提示:1130-Host XXX is not allowed to connect to this MySQL server的处理方法

这个是使用诸如Navicat等工具连接Mysql服务器的时候会出现的问题,原因就是对应的mysql服务器不允许远程连接造成的。 遇到很多次,感觉还是挺频繁的,做个记录,方便以后查阅以及大家参考。

问题表现大致如图:

本次记录的是windows上的mysql服务器的情况,如果是linux也是类似的处理方法即可

1、服务器上打开命令提示行(这个方式是已经配置了环境变量的,如果没有配置环境变量会提示不是内部或外部命令什么的,配置好环境变量或者直接跳转到mysql安装目录下也可以):

2、使用命令登录mysql:

mysql -uroot -p(此命令需要单独输入密码) 或者是mysql -uroot -pXXX 直接跟密码均可

3、转到mysql 库

use mysql;

 4、查询当前用户可登录的客户端情况:从mysql 库的user表查询

select user,password,host from user;

可以看到root用户是只允许在localhost登录的,因此我们需要更改他,使得可以从其他主机登录。

 5、更新root用户可登录的客户端情况:

update user set host=@'%' where user='root' and host='localhost' limit 1;

并使用命令:flush privileges;使得更新完成

6、确认修改情况:

可以看到有密码的root 的host不再显示localhost 这时再连接发现可以连接成功,不再报错:

登录数据库服务器时,会验证登录的主机、用户名、密码 但凡有一个与数据库里原本的信息不匹配都有会出现登录失败的情况。 具体问题具体分析即可。

=====================================================================

之前在处理这个问题的时候,还查找到一种方案,具体资料连接我忘记了,但是大致是这样的:

这个方式里,有一个报错,但是当时的资料说可以不理会,并且是可以处理成功的,但是我之前记得这个是不行的,所以我换了上面记录的方式,如果大家好奇也可以试试。

另外需要考虑的是关闭mysql服务器的防火墙,或者是放行对应的端口号,不然可能还是会报错的。

另外需要注意,这个解决方法,可能会引起另外一个坑,处理方法,参考:关于mysql Error 1045(28000):Access denied for user ‘root‘@‘localhost‘(using password:YES)的处理方法_yeyuningzi的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/yeyuningzi/article/details/120509321