为什么MySQL连接被阻止许多连接错误?

2022-08-30 15:39:21

如您所见,我在数据库连接上遇到了问题。它给了我这个错误:

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

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

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


答案 1

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

因此,首先,您需要找到哪种错误....

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

或者,您可以增加(什么是当前值?)最大值取决于体系结构。在 32 位上,4294967295。18446744073709547520为 64 位。(手动max_connect_errors)

mysql> SET GLOBAL max_connect_errors = 100000000;

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

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

mysql> FLUSH HOSTS;

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

# mysqladmin flush-hosts

答案 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";

推荐