unblock with 'mysqladmin flush-hosts’错误处理
最近遇到的问题:数据库某表数据不在增加 通过服务日志发现了报错信息,提示 Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’ ,含义是同一个ip在短时间内产生太多的中断的数据库链接而导致的阻塞。共有4种解决方法:
方法1:修改max_connect_errors
(1)进入Mysql数据库查看max_connect_errors:
> show variables like \'%max_connect_errors%\';
(2)修改max_connect_errors的值:
> set global max_connect_errors = 100;
(3)查看是否修改成功
> show variables like \'%max_connect_errors%\';
方法2:重启mysqlid
在重启之前,在配置文件种将参数调大
vim /etc/my.cnf
max_connect_error=100
方法3:使用mysqladmin相关命令
[root@localhost /]# whereis mysqladmin
[root@localhost bin]# mysqladmin flush-hosts
这里可能会报错,信息如下
mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘root’@‘localhost’ (using password: NO)’
这里可以使用如下命令
[root@localhost bin]# mysqladmin -u root -p flush-hosts
password:
清理下hosts文件后,就可以正常使用了
方法4:
造成Host is blocked because of many connection errors;的原因不仅仅是表的损坏会造成,还有可能是mysql DNS反解也会导致这个原因,这个问题需要在my.cnf文件禁用该功能,禁用之后,在mysql的授权页面,仅可使用ip地址
[mysqld]
skip-name-resolve