Mysql数据库:Host 'xxx.xxx.xxx.xxx' is blocked because of many connection errors问题处理

一、问题如下

  Host 'xxx.xxx.xxx.xxx' is blocked because of many connection errors

  

  这个错误是因为在短时间内频繁地对数据库进行错误连接,触发了数据库的保护机制,锁住了该ip对数据库的访问权限。(错误连接可能是由错误的用户名、密码、配置的链接后缀或者白名单等引起,这个需要自己检查确认)

二、问题处理

  1、首要的肯定是要检查并矫正数据库的信息配置是否正确了,如果不正确的话即便不报这个错也访问失败,应该确认无误后再进行解锁流程。

  2、因为之前使用错误的信息进行了频繁的错误连接,可能会被当成恶意攻击处理了,拉进了黑名单。

  所以在配置调整正确之后,依旧无法访问,此时就需要给ip进行解锁。

  数据库查询中执行以下语句:

flush hosts;

  清理禁用ip的缓存,这样就放开该ip的访问权限了。

  不过这也是治标不治本的方法,因为根源在错误的数据库链接上,如果没有矫正的话,在一段时间后错误连接数超过了设定的阈值,还是会出现这样的问题。

  如果只是短时间调试使用的话,这种方法用来处理还是可行的。

  下面是另一个配置,调整错误链接数的最大阈值,这样可以拉大报错的时间间隔。

  在数据库查询中执行如下语句:

show variables like 'max_connect_errors';

  得到的结果如下:

  

  这个是调整之后的值,一般没有调整过的可能比较小,调整该数值使用以下命令:

set global max_connect_errors = 10000;

  这里是一次性的配置,不是永久的,因为这种处理方法一般都是短时适用,没必要调整配置文件去修改永久的数据

  使调整的配置生效:

flush privileges

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章