25

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

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

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

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

4

2 回答 2

42

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

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

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

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

mysql> SET GLOBAL max_connect_errors = 100000000;

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

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

mysql> FLUSH HOSTS;

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

# mysqladmin flush-hosts
于 2013-11-16T06:02:13.427 回答
7

首先使用以下命令刷新主机本地 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";
于 2016-01-18T08:57:15.140 回答