Host 'hostname' is blocked because of many connection errors
时间:2014-05-04 06:05:51 作者:beebol 标签: 分类: Mysql
同事请假,他负责的项目启程序时报了如下错误,第一次没有注意,以为是他忘记刷新host缓存了,直接按照后面的提示执行mysqladmin flush-h后就可以正常启了,也没有注意剪成的具体报错。
ErrorCode = 1129,ErrorMessage = [unixODBC][MySQL][ODBC 3.51 Driver]Host 'gs_103_224.90' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts',ErrorSql
今天如常,我就看了下,应该不会没有刷新host的问题了吧!叫运维把报错信息一发,明白了。
问题在失败的连接请求数量超出了max_connect_errors中的值,导致报这个错误。mysql会将每个连接的信息都记录到缓存当中,一但超出设置的阈值就会报错。不过可以通过刷新缓存来解决问题。
果断查看变量信息:
[com@11103_101_219 ~]$ mysqladmin var |grep connect | character_set_connection | latin1 | | collation_connection | latin1_swedish_ci | | connect_timeout | 10 | | init_connect | | | max_connect_errors | 1000 | | max_connections | 60 || max_user_connections | 0 | | max_user_connections | 0 |
max_connect_errors已经是1000了,应该算大了,主要原因是有一次网络故障导致了太多失败连接,后来把程序给停了,然后再启来时就报错了。
(root:${HOSTNAME}:Sun May 4 17:18:44 2014)[(none)]> set global max_connect_errors = 10000 -> ; Query OK, 0 rows affected (0.00 sec) (root:${HOSTNAME}:Sun May 4 17:19:03 2014)[(none)]> exit Bye [com@11103_101_219 mysql]$ mysqladmin var | grep connect | character_set_connection | latin1 | | collation_connection | latin1_swedish_ci | | connect_timeout | 10 | | init_connect | | | max_connect_errors | 10000 | | max_connections | 60 || max_user_connections | 0 | | max_user_connections | 0 |
了解原因之后,就增加了这个变量值,增大到了10000。
继续观察