前一段时间接到一个通知说数据库挂了,于是就连上服务器去查看,看了下mysql的进程在,进入查询没有问题啊,难道又是库表文件损坏(详情可看http://jim123.blog.51cto.com/4763600/1830873

于是就打开web页面去看下报错信息,结果找到了这个 Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' ,去找了些资料查看了下,知道原因是同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞,处理方法有2个:1、是去调整max_connection_errors的值,此时不实用,pass。2、去mysql软件的指点安装目录下的bin目录里使用mysqladmin工具

[root@localhost bin]# mysqladmin flush-hosts

清理一下hosts文件,如果不知道安装的mysql指定安装路径,可以通过下面的命令查找

[root@localhost /]# whereis mysqladmin

就清理下hosts文件后,web站点就可以正常访问数据库了。

    当然造成Host is blocked because of many connection errors;的原因不仅仅是表的损坏会造成,有的时候mysql DNS反解也会造成这个原因,处理的方法虽然也可以用

[root@localhost bin]# mysqladmin flush-hosts

但是这样还是治标不治本,要彻底解决的方法是在my.cnf文件里

[mysqld] 
skip-name-resolve#添加此行,禁用DNS的主机名解析功能,禁用该功能后,在MySQL授权表里面,你只能使用IP地址

然后重启mysql就行了