MySQL 服务器拒绝主机连接请求null, message from server: “Host ‘xxxx‘ is not allowed to connect to this MySQL ser

问题截图:

这种错误是由于以下原因之一引起的:

(一) MySQL 用户权限问题:

使用的 MySQL 用户没有权限从主机连接到 MySQL 服务器

解决方法:

为用户授予主机连接的权限,找到mysql安装目录下的bin,通过cmd进入,执行下面命名

# 进入服务器
mysql -u root -p;

# 切换到 mysql用户
use mysql;

# 查询目前的用户权限
select user,host from user;

# 先把权限还原(只允许本机(localhost, 127.0.0.1)来连接访问)
update user set host='localhost' where host='%';

# 设置指定IP访问mysql数据库   IP这里可以使用%来表示所有。 
GRANT ALL PRIVILEGES ON *.* TO '账号'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

# 执行刷新权限生效
flush privileges;

# 查询IP权限
show grants for root@'IP';

或者直接从mysql数据库中进行修改

找到mysql库下user表,将host修改为%就可以了

 

(二)MySQL 绑定地址限制

MySQL 服务器可能配置为只监听本地连接(127.0.0.1 或 localhost),而没有监听外部网络的连接请求。

检查 MySQL 配置文件(通常是 my.cnf 或 my.ini)中的 bind-address 设置。

解决方法:

打开 MySQL 配置文件(路径因操作系统而异):

  • Linux: /etc/mysql/my.cnf  /etc/my.cnf
  • Windows: C:\ProgramData\MySQL\MySQL Server X.X\my.ini

找到 bind-address 配置项,将其改为:

bind-address = 0.0.0.0

 重启 MySQL 服务以应用更改

  • 任务管理器--服务--mysql--右键重启

 

(三)防火墙或网络问题

防火墙可能阻止了从主机到 MySQL 服务器的连接

确保 MySQL 服务器的端口(默认是 3306)在防火墙中是开放的

解决方法:

参考这篇博客:win10设置防火墙端口开放及检测开放端口_请检查您的防火墙和端口转发规则-CSDN博客