MYSQL维护-java.sql.SQLException: null, message server: "Host 'ora-rac2' is blocked because of many co

错误:

java.sql.SQLException: null,  message server: "Host 'ora-rac2' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"



原因:

mysqld达到大量(max_connect_errors)的主机名为‘ora-rac2’的再中途被中断了的连接请求。

当max_connect_errors次连接失败请求后,mysqld认为出错,因此当再次接受连接请求时会被锁住,并阻止进一步的客户端连接。直到执行mysqladmin flush-hosts命令,刷新host。


解决办法:

缺省mysqld在10个连接错误后阻止一台主机,可以通过命令设置该值:set global max_connect_errors=100;

mysql> show variables like 'max_connect%';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| max_connect_errors | 10    |
| max_connections    | 151   |
+--------------------+-------+
2 rows in set (0.00 sec)


mysql> set global max_connect_errors=100;
Query OK, 0 rows affected (0.00 sec)


mysql> show variables like 'max_connect%';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| max_connect_errors | 100   |
| max_connections    | 151   |
+--------------------+-------+
2 rows in set (0.00 sec)


mysql> 


#本次解决办法:重启mysql服务


==================max_connect errors

Max_connect errors:是一个MYSQL中与安全有关的计数器值,负责阻止过多尝试失败的客户端连接,与性能无关。


当一个客户端连接失败(如密码错误)次数超过10次,则mysql会无条件强制阻止此客户端连接。

重置此计数器的值,则必须重启mysql服务器或者执行

mysql> flush hosts;
Query OK, 0 rows affected (0.00 sec)

当该客户端成功连接一次mysql服务器后,针对此客户端的max_connect_errors会清零。


一般,mysql服务器不监听来自网络的连接,仅仅通过sock连接,这样可以防止绝大多数针对mysql的攻击;如果必须要开启mysql网络连接,则建议最好设置此值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值