一、我遇到的问题描述

使用Navicat for mysql连接公司的服务器数据库,报错:Host ‘XXXXXX’ is blocked because of many connection errors

二、出现错误原因

同意ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)终端的数据库连接而导致的阻塞;

三、解决方案(根据实际情况来选择解决方案):

1、可以更改max_connection_errors的值,即提高允许的max_connection_errors的数量

        (1)首先查看该属性设置为多大:命令:

show global variables like '%max_connect_errors%';

 (2)然后修改该属性

  当客户端连接服务端超时(超过connect_timeout), 服务端就会给这个客户端记录一次error,当出错的次数达到max_connect_errors的时候,这个客户端就会被锁定。所以根据业务来尽量把这个值设置大一点,mysql默认值为10,我们可以根据具体需要设置大一点,这里设置为1000.(并非越大越好,越大被攻击时安全性越低)


2、使用清楚缓存的方法,这样就会把计数清理掉,进入mysql控制台,执行:flush hosts;

 

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐