报错: null, message from server

时间:2025-04-09 08:25:47

报错: null, message from server: “Host ‘’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’”

  • 1.原因:
    说明mysqld已经得到了大量(max_connect_errors)的主机’hostname’的在中途被中断了的连接请求。在 max_connect_errors次失败请求后,mysqld认定出错了(象来自一个黑客的攻击),并且阻止该站点进一步的连接,直到某人执行命令 mysqladmin flush-hosts。
解决办法:
cd /usr/local/mysql/bin
mysqladmin flush-hosts
  • 2.原因:
    因为公司需要把项目和数据库分开进行,所以有2台服务器,直接修改连接池ip后,出现了: null, message from server: “Host ‘xxx’ is not allowed to connect这样的错误,它的意思就是安装了数据库的服务器不允许部署项目的服务器进行远程连接。也就是权限问题,修改权限就可以了,修改方法是。
登录mysql : mysql -uroot -p;    并输入密码

1.打开mysql控制台,输入:进入mysql库

use mysql;

2.输入:查询mysql库的表

show tables;

3.输入:查看user表的host

select host from user;

4.输入:修改可以远程访问

update user set host ='%' where user ='root';

5.输入:

flush privileges;

flush privileges; 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。

MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。
通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

如果无法执行,可能你没有权限,让公司运维人员去修改数据库权限