私はデータベースと対話するためにPDOを使用してpostgresqlバックエンドを持つPHPアプリケーションを持っています。数ヶ月間問題なく立ち上がっていますが、突然今夜、データベース接続が必要なページのロードで永続的な500エラーが発生し、サーバーのerror.logファイルには次のように表示されます。postgresql非スーパーユーザーのためにPHPの接続制限を超えました
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08006]
[7] FATAL: connection limit exceeded for non-superusers'
データベースに接続するユーザーのrollconnlimitが-1であるため、これは問題ではありません。 pg_stat_activityテーブルを照会すると、接続が見えません。
これを引き起こす原因は何ですか?多かれ少なかれデータベース接続が発生するようなコードは変更していません。
いくつかのコードを投稿してもうれしいですが、私のコードのどの部分が問題を引き起こしているのかについての指針なしに投稿するのは確実ではありません。
固定モード接続を使用していますか? http://stackoverflow.com/questions/3332074/what-are-the-disadvantages-of-using-persistent-connection-in-pdo – GordonM
いいえ、私は一回限りの接続を使用しています(私は、あなたにリンクして答えてください!)ので、彼らは死んでいるはずです。私はいくつかのより多くのデバッグを行いましたし、私のコードで問題があると考えています。既存のdbメソッドを使用して、各ループ(怠け者)の単一項目を取得するのではなく、それら。 – Alpaus