【问题标题】:Why MySQL connection is blocked of many connection errors?为什么 MySQL 连接被许多连接错误阻止?
【发布时间】:2026-01-15 11:25:01
【问题描述】:

如您所见,我的数据库连接有问题。它给了我这个错误:

...由于许多连接错误而被阻止

我搜索了一些答案,但我无法解决我的问题。

我不知道我是否提供了您需要的所有信息,所以如果您需要其他信息,请告诉我。我有来自不同计算机的数据库连接,我创建了一个用户来访问数据库,但它在主机行中有%,所以我想用 IP 地址更改它以解决安全问题,它给了我这个错误所以现在我被困住了。

【问题讨论】:

  • 我尝试重新配置 mysql 连接,我尝试创建一个新用户,但没有任何效果我不知道该怎么做

标签: php mysql database mysqladmin


【解决方案1】:

MySQL 阻止连接时出错的客户端,以保护 MySQL 免受格式错误的客户端的影响。

所以首先,你需要找出什么样的错误是......

您可以查看数据目录中的 MySQL 错误日志。 (通常是 hostname.err

或者,您可以增加max_connect_errors(当前值是多少?)最大值取决于架构。在 32 位上,4294967295。对于 64 位,18446744073709547520。 (Manual)

mysql> SET GLOBAL max_connect_errors = 100000000;

但是如果经常出现错误,这不是真正的解决方案。

FLUSH HOSTS 可以帮助您立即消除被阻止的主机。

mysql> FLUSH HOSTS;

如果想从外部 mysql 控制台运行,请使用 mysqladmin 命令:

# mysqladmin flush-hosts

【讨论】:

  • 是的,刷新主机可以帮助我,但我在数据库程序控制台中运行这行代码(命令)?我正在使用 navicat 顺便说一句
  • 是的。我想您不仅可以使用 mysql 控制台,还可以使用任何 mysql 客户端(即使是 GUI)来运行它。你为什么不试试呢。
  • @Nick 默认值max_connection_errors只有10。我猜你刷完后,它达到了10。(但我不确定......)我建议增加max_connection_errorsdev.mysql.com/doc/refman/5.5/en/blocked-host.html
  • 我无法连接mysql命令行。如何使用“刷新主机”?
  • @AhmetMelihBaşbuğ mysqladmin -u username -p flush-hosts 将“用户名”替换为您的 MySQL 用户,并在询问时输入密码。
【解决方案2】:

首先使用以下命令刷新主机本地 MySQL:

mysqladmin -u [username] -p flush-hosts
**** [MySQL password]

mysqladmin flush-hosts -u [username] -p
**** [MySQL password]

网络 MySQL 服务器:

mysqladmin -h <ENDPOINT URL> -P <PORT> -u <USER> -p flush-hosts
mysqladmin -h [END POINT URL] -P 3306 -u [DB USER] -p flush-hosts 

附加建议 您可以通过编辑永久解决阻止许多连接错误问题 my.ini文件[Mysql配置文件]

更改变量 max_connections = 10000;

使用命令行登录 MySQL -

mysql -u [username] -p
**** [MySQL password]

将以下命令放入 MySQL 窗口

SET GLOBAL max_connect_errors=10000;
set global max_connections = 200;

使用命令检查真实性-

show variables like "max_connections";
show variables like "max_connect_errors";

【讨论】: