参考:http://web2.0coder.com/archives/163

之前服务器遇到了这个错误:

Host ‘host_name‘ is blocked because of many connection errors.
Unblock with ‘mysqladmin flush-hosts’

 

产生原因:

原因是因为mysql的connection errors的数量达到了配置的max_connect_errors这个变量,5.0上默认配置是10,也就是说当连续有10个connect errors的时候,mysql就认为可能有人在攻击数据库,所以直接智能的ban掉这个ip。

注意这里是连续10个,如果还没有到10个,突然有一个成功的连接,则会把connect errors数量清0,重新计算。也就是说,如果已经有了8个连接connect error了,此时第9个成功连上,则当前的connect_errors计数清零。可以通过:

mysql > show variables like ‘max_connect_errors’;

来查看当前配置的这个参数值。可以通过修改conf文件中的max_connect_errors变量来修改此参数,然后重启当前服务器。

解决方法:

在确认host name的ip是正常的ip后,并且确认没有很不稳定的网络连接原因,即,在确认这是一次正常的block之后,可以通过

mysqladmin flush-hosts

来清掉本次block,也可以登进mysql后,在命令行用mysql > flush hosts; 来清理。