我的应用程序不再连接到其数据库,phpmyadmin说#1129 - 由于许多连接错误,主机'xxx.xx.xx.xx'被阻止;使用'mysqladmin flush-hosts'
解锁mysql_error()打印出相同的消息。这可能是因为关系太多了吗?
是什么导致这种情况?
答案 0 :(得分:4)
使用管理权限打开命令提示符(或Linux中的shell)
使用mysqladmin:
刷新MySQL中的所有主机mysqladmin flush-hosts -u root -p
打开my.cnf(Linux)或my.ini(Windows)并将max_connect_errors变量更改为较大的数字。我用过:
max_connect_errors = 1000000
重启MySQL服务器
答案 1 :(得分:2)
来自手册:http://dev.mysql.com/doc/refman/4.1/en/blocked-host.html
中断连接的次数 允许的请求由 max_connect_errors系统的值 变量。在max_connect_errors之后 失败的请求,mysqld假设 有些事情是错的(例如,那 有人试图闯入),和 进一步阻止主机 连接,直到你执行 mysqladmin flush-hosts命令或 发出FLUSH HOSTS声明。看到 第5.1.3节“服务器系统 变量”。
您可能遇到连接数据库的网络问题。
答案 2 :(得分:0)
使用monit监控我们的数据库服务器时出现此问题。如果您的配置格式为:
,Monit将导致连接错误if failed port 3306 with timeout 15 seconds 2 times within 3 cycles then alert
而不是
if failed port 3306 protocol mysql with timeout 15 seconds 2 times within 3 cycles then alert
缺少'protocol mysql'会导致连接错误计数增加。