测试平台突然接口全部报错,赶紧查看日志:

com.github.pagehelper.PageException: java.sql.SQLException: null,  message from server: "Host 'xxx.xxx.xxx.xx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
Connection closing...Socket close.ageException: java.sql.SQLException: null,  message from server: "Host 'xxx.xxx.xxx.xx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"

报错原因

错误原因其实报错信息已经给出:一个IP因为过多的连接错误(超过mysql数据库max_connection_errors的最大值)被数据库服务器阻塞

解决方案

解决方案有多种,可以根据实际情况进行选择:

方法1、清除错误记录
在控制台执行 flush-hosts 即可(或者在navicat等连接工具上进入mysql库,执行该指令)。这个方法直接有效,但如果连接错误继续发生,迟早会再次触发报错。

方法2、修改max_connection_errors

  1. 首先查看该值:show global variables like ‘%max_connect_errors%’;
    在这里插入图片描述
  2. 然后修改该属性:set global max_connect_errors = 1000
  3. 重复步骤1,可以看到修改生效

方法3、修改配置文件

方法2的修改只是临时方案,要想永久性修改属性值,需要修改mysql的配置文件。如果配置文件里没有这个属性,自己手动添加:max_connect_errors = 1000

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐