有足够的连接,但由于许多连接错误,主机 'x.x.x.x' 仍然被阻止;使用 'mysqladmin flush-hosts' 解锁

Have enough connection but still getting Host 'x.x.x.x' blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

我正在使用带有 mysql 连接器 8.0.21 的 .net 核心 3.1。 在 mysql 我有 max_connection 大约 3000 和 max_user_connection 为 0(无限制)

在各种应用程序的连接池设置中,我保留的总连接数约为 2800。 有时我偶尔会遇到上述错误。 知道可能是什么问题。

在我的应用程序中,有两种数据库访问实现。一个是小巧玲珑,另一个是旧香草 ado.net 实现。 奇怪的是当我们通过query

查询所有用户的连接数时
SELECT IFNULL(usr,'All Users') USER,IFNULL(hst,'All Hosts') HOST,COUNT(1) Connections
FROM
(
    SELECT USER usr,LEFT(HOST,LOCATE(':',HOST) - 1) hst
    FROM information_schema.processlist
    WHERE USER NOT IN ('system user','root')
) A GROUP BY usr,hst WITH ROLLUP;

结果远低于连接限制。 mysql 错误日志中也没什么内容

https://bugs.mysql.com/bug.php?id=24761 我们的服务器也有设置 nagios

问题是由于第三个 aprty 监控工具 nagios 在 mysql 服务器的 ip/port 上执行 telnet 如中所述,删除监控并执行替代监控方式后问题已解决 https://serverfault.com/questions/578682/monit-mysql-server-blocked-because-of-too-many-bad-connections