【发布时间】:2012-02-26 00:33:22
【问题描述】:
我有一个带有 postgresql 后端的 php 应用程序,使用 PDO 与数据库进行交互。它已经启动并运行了几个月没有问题,但今晚突然间我在需要数据库连接的页面加载时遇到持续的 500 错误,服务器的 error.log 文件显示:
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08006]
[7] FATAL: connection limit exceeded for non-superusers'
连接到数据库的用户的 rollconnlimit 为 -1,因此这应该不是问题。 当我查询 pg_stat_activity 表时,我看不到任何连接。
知道是什么原因造成的吗?我没有更改任何会导致更多或更少数据库连接的代码。
我很高兴发布一些代码,但如果没有关于可能导致问题的原因的指导,我不确定要发布我的代码的哪些部分。
【问题讨论】:
-
您是否使用持久模式连接? stackoverflow.com/questions/3332074/…
-
不,我使用的是一次性连接(我被你链接到的答案推迟了持久性!)所以他们应该死了。我已经进行了更多调试,并认为这是我的代码的问题,使用现有的 db 方法来检索每个循环中的单个项目(惰性),而不是仅仅编写一个新的 db 方法,该方法在 THEN 循环时检索记录他们。
标签: php postgresql pdo database-connection