Navcat 报错代码为 1129 - "Host 'xxx.xxx.xxx.xxx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
Java 报错信息如下
java.sql.SQLException: null, message from server: "Host 'xxx.xxx.xxx.xxx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.29.jar:8.0.29]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.29.jar:8.0.29]
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-java-8.0.29.jar:8.0.29]
原因: 同一个 IP 短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接会导致数据库连接阻塞
解决办法:
-
修改配置文件 max_connect_errors 的值(没什么用)
-
清除缓存(√)
清除缓存的命令可以看到报错信息中的
mysqladmin flush-hosts
,但是需要加上root用户信息:root@164489b76936:/# mysqladmin flush-hosts -uroot -p Enter password: