php – MySQL中“许多连续中断的连接请求”是什么?
我经常有以下错误:
PHP致命错误:带有消息’SQLSTATE [HY000]的未捕获异常’PDOException'[1129]由于许多连接错误,主机’MY SERVER’被阻止;使用’mysqladmin flush-hosts’取消阻止 使用常规(如crontab)mysqladmin flush-hosts命令或增加max_connect_errors系统变量很容易解决问题,如here所示. 但是!什么是“许多连续中断的连接请求”,为什么会发生这种情况? 我宁愿防止上游问题,而不是纠正阻塞. MySQL版本:5.5.12.我正在使用Zend Framework 1.11.10和Doctrine 2.1.6. 我的PHP代码中没有mysql_close()和mysqli_close(). max_connect_errors有默认值10,我不想增加它,我想知道为什么我有错误.我使用一个cron,每隔5分钟执行一次mysqladmin flush-hosts命令.
此响应是设计为安全措施,是达到mysql的max_connection_errors值的结果.
Here’s a link Oracle提供了大部分可能原因和解决方案的详细信息.
最终,这意味着有很多连续的连接失败,MySql停止响应连接尝试.
当你如此迅速地达到这个限制时,只有少数可能的罪魁祸首: >服务器未正确配置为使用PDO. >导致快速达到max_connections值,导致所有后续连接尝试失败…从而快速达到max_connection_errors限制. >代码遇到无限循环或级联失败. >明显的可能性,但必须提到. > PDO运行正常,但有些脚本需要很长时间才能运行,或者永远不会结束. >最简单的方法是关闭max_execution_time. 无论如何,这很可能难以追查. >记录每个mysql连接尝试的堆栈跟踪,以查找导致此问题的代码. 虽然PDO不需要显式关闭mysql连接,但对于这种情况,有一些实践可以阻止这样的ServerAdmin搜索. >始终显式关闭mysql连接. >构建一个simple Class来处理所有连接.打开,返回数组,关闭. >始终在一个且仅在一个所需位置包含的文件中定义连接参数. >如果增加max_execution_time,请增加max_connections. dev.mysql.com/doc/refman/5.0/en/cursors.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |