message from server: "Host '10.20.12.14' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"

Jacky Linux 2023-01-04 11

原因

同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞;

解决方法

1、提高允许的max_connect_errors数量(这种方法不彻底,后期还可能导致异常出现):

进入Mysql数据库查看max_connect_errors: show variables like 'max_connect_errors';

# 修改max_connect_errors的数量为1000 
set global max_connect_errors = 1000;
# 查看是否修改成功
show variables like 'max_connect_errors';

2、使用mysqladmin flush-hosts 命令清理一下hosts文件 (1)如果是安装在Linux主机上的,可以通过whereis mysqladmin查找mysqladmin的路径 使用命令修改:

/usr/bin/mysqladmin flush-hosts -h 10.20.12.14 -uroot -p

备注:配置有master/slave主从数据库的要把主库和从库都修改一遍 (2)如果是在数据库连接软件上也可以在命令列工具里修改,命令如下:

mysql -uroot -p
mysql > flush hosts