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

Nic*_*ick 18 php mysql database mysqladmin

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

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

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

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

Jas*_*Heo 28

MySQL阻止客户端在连接时发生错误,以保护MySQL免受恶意客户端的攻击.

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

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

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

mysql> SET GLOBAL max_connect_errors = 100000000;
Run Code Online (Sandbox Code Playgroud)

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

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

mysql> FLUSH HOSTS;
Run Code Online (Sandbox Code Playgroud)

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

# mysqladmin flush-hosts
Run Code Online (Sandbox Code Playgroud)


Sye*_*lam 6

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

mysqladmin -u [username] -p flush-hosts
**** [MySQL password]
Run Code Online (Sandbox Code Playgroud)

或者

mysqladmin flush-hosts -u [username] -p
**** [MySQL password]
Run Code Online (Sandbox Code Playgroud)

网络 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 
Run Code Online (Sandbox Code Playgroud)

另外建议你可以通过编辑my.ini文件[Mysql配置文件]永久解决blocked of many connections错误问题

更改变量 max_connections = 10000;

或者

使用命令行登录 MySQL -

mysql -u [username] -p
**** [MySQL password]
Run Code Online (Sandbox Code Playgroud)

将以下命令放入 MySQL 窗口

SET GLOBAL max_connect_errors=10000;
set global max_connections = 200;
Run Code Online (Sandbox Code Playgroud)

使用命令检查名副其实

show variables like "max_connections";
show variables like "max_connect_errors";
Run Code Online (Sandbox Code Playgroud)