【发布时间】:2010-12-12 11:47:24
【问题描述】:
我在使用 Zend_Db 的 PDO 适配器来管理我的数据库连接时遇到了一个奇怪的问题。突然之间,我的 MySQL 服务器上的连接数不断受到限制。
无论出于何种原因,每三四个小时左右我就会收到此错误,而 Apache 会在每个 HTTP 请求上报错:
PHP 致命错误:未捕获异常 'Zend_Db_Adapter_Exception' 并带有消息 'SQLSTATE[00000] [1129] 主机 'my.internal.mysql.server.DNS.here' 由于许多连接错误而被阻止;在
中使用 'mysqladmin flush-hosts'' 解除阻止
奇怪的是,我没有更改任何代码,而且流量实际上比过去有所下降,所以我知道我的应用程序不应该产生更多并发连接。最奇怪的是,我在近一周内没有更改任何主要应用程序文件的代码,此后一切都顺利运行。
重启 mysql 服务或使用 mysqladmin flush-hosts 刷新连接确实可以解决问题,我确信增加 my.cnf 中的最大并发连接数也有助于缓解其中一些问题,但似乎有一个应用程序本身创建太多连接的核心问题。
关于如何深入了解和关联导致挂起连接的代码段有什么想法吗?在外部,Web 应用程序的所有不同页面都可以正常加载且速度很快。
【问题讨论】:
-
我很难决定是在 ServerFault 上还是在此处发布此内容,但我决定从这里开始,因为这似乎是一个应用程序问题
标签: php mysql zend-framework