问题: Host "xxx" is blocked because of many connection errors,unblock with 'mysqladmin flush-hosts

 

错误原因

同一IP在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)error的数据库连接而导致的阻塞。

当客户端连接服务器超时(超过connect_timeout),服务端就会给这个客户端记录一次error,当出错的次数达到max_connect_errors的时候,这个客户端就会被锁定。所以可以根据业务来尽量把这个值设置大一点。

 

解决办法

 1. 提高允许的max_connect_errors的数量 

  执行如下命令(临时生效,重启后失效)

  set global max_connect_errors=500;

  或者在mysql配置文件中新增以下配置(永久生效)

  max_connect_errors=500

 

2. 使用清除缓存的方法,这样就会把计数清理掉

  进入mysql控制台,执行flush hosts

  mysql>flush hosts;

  或者到mysql安装目录下,使用mysqladmin  -u  root  -p  flush-hosts命令,输入密码后,即完成清除缓存

 

 

 

 

参考地址

https://www.cnblogs.com/ruiy/p/11187084.html

https://blog.csdn.net/li_li_lin/article/details/72764683

posted @ 2019-09-30 15:31  harara  阅读(238)  评论(0编辑  收藏  举报