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

时间:2013-11-16 04:39:29

标签: php mysql database mysqladmin

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

  由于许多连接错误,

...被阻止

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

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

2 个答案:

答案 0 :(得分:26)

MySQL会阻止客户端在连接时发生错误,以保护MySQL免受格式错误的客户端的攻击。<​​/ p>

首先,你需要找到什么样的错误......

您可以检查数据目录中的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

答案 1 :(得分:1)

首先使用以下命令刷新本地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;

使用command-

检查veritable
show variables like "max_connections";
show variables like "max_connect_errors";