记message from server Host ‘XXX.XXX.XXX.XXX‘ is blocked because of many connection errors;

记java.sql.SQLException: null, message from server: "Host ‘XXX.XXX.XXX.XXX’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’"问题

产生原因:

一台服务器访问另一台服务器数据库,因为不可控原因一直失败,最后被数据库所在拉黑了

排查过程:

  1. 启动服务失败,报错
  2. 本地通过Navicat访问另一台服务器数据库,没有任何问题
  3. 在一台服务器上直接访问另一台服务器数据库:mysql -h XXX.XXX.XXX.XXX -P 15306 -u root -p 访问不通
  4. 最后排查到出现java.sql.SQLException: null, message from server: “Host ‘XXX.XXX.XXX.XXX’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’”

因为mysql的connection errors的数量达到了配置的max_connect_errors这个变量,8.0上默认配置是100,也就是说当连续有100个connect errors的时候,mysql就认为可能有人在攻击数据库,所以直接智能的ban掉这个ip。

注意这里是连续100个,如果还没有到100个,突然有一个成功的连接,则会把connect errors数量清0,重新计算。

可以通过:mysql > show variables like 'max_connect_errors';

来查看当前配置的这个参数值。可以通过修改conf文件中的max_connect_errors变量来修改此参数,然后重启当前服务器。

解决方法:

在确认host name的ip是正常的ip后,并且确认没有很不稳定的网络连接原因,即,在确认这是一次正常的block之后,可以通过

mysqladmin flush-hosts

来清掉本次block,也可以登进mysql后,在命令行用mysql > flush hosts; 来清理。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yizhi-w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值