- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在使用 Zend_Db 的 PDO 适配器管理我的数据库连接时遇到了一个奇怪的问题。突然间,我的 MySQL 服务器不断达到连接限制。
无论出于何种原因,每隔三四个小时左右我就会收到此错误,并且 Apache 在每个 HTTP 请求上都会出现此错误:
PHP Fatal error: Uncaught exception 'Zend_Db_Adapter_Exception' with message 'SQLSTATE[00000] [1129] Host 'my.internal.mysql.server.DNS.here' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'' in
奇怪的是,我没有更改任何代码,而且流量实际上比过去有所下降,所以我知道我的应用不应该产生更多并发连接。最奇怪的是我已经将近一周没有更改任何主要应用程序文件的代码,从那以后一切都运行得很顺利。
重新启动 mysql 服务或使用 mysqladmin flush-hosts 刷新连接确实可以解决问题,我确信增加 my.cnf 中的最大并发连接数也有助于缓解其中的一些问题,但似乎有一个应用程序本身的核心问题是创建了过多的连接。
关于如何向下钻取和关联导致挂起连接的代码段有什么想法吗?在外部,Web 应用程序的所有不同页面加载速度都很好。
最佳答案
我认为您的某个脚本正在运行超长查询或卡住了?
最好的解决方案是创建一个日志记录工具并使用它来了解问题的确切位置。
Zend_Log类应该可以帮助您编写该日志记录工具,显然您最好使用文件编写器而不是数据库编写器。由于您的问题与数据库相关,您应该创建或修改数据库类以发出一些日志。
我不知道您项目的容量,但它可能会产生一些性能副作用。
也在玩long query MySQL 的特性可能会给你一些提示。
希望您能找到您的问题所在。
关于php - Zend Framework 应用程序未正确关闭 mysql 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1664713/
我是一名优秀的程序员,十分优秀!