1. ホーム
  2. php

[解決済み】php, mysql - データベースへの接続数が多すぎるエラー

2022-02-05 09:22:28

質問内容

皆さん、こんにちは。変なエラーが発生しました。私はこのように動作するチャットを作成しました。

  • 質問/回答がデータベースに挿入されます。
  • 2秒ごとにAjaxリクエストが新しい質問/回答をフェッチするPHPスクリプトに送信されます。

今日までうまくいっていたのですが、このエラーが出ました。

Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1040] Too many connections' in /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Abstract.php:129 
Stack trace: #0 /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Abstract.php(129): PDO->__construct('mysql:host=loca...', '', '', Array) 
s#1 /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect() 
s#2 /var/www/html/dbdev/include/Zend/Db/Adapter/Abstract.php(448): Zend_Db_Adapter_Pdo_Mysql->_connect() 
s#3 /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('select profile_...', Array) 
s#4 /var/www/html/dbdev/include/Zend/Db/Adapter/Abstract.php(782): Zend_Db_Adapter_Pdo_Abstract->query('select profile_...', Array) 
s#5 /var/www/html/dbdev/include/Profile.php(43): Zend_Db_Adapter_Abstract->fetchPairs('select profile_...') 
s#6 /var/www/html/dbdev/public_html/index.php(29): Profile->load() 
s#7 {main} Next exception 'Zend_Db_Adapter_Exception' with in /var/www/html/dbdev/include/Zend/Db/Adapter/Pdo/Abstract.php on line 144

問題は、私たちがそれほど多くないということです。(8)であり、私はdbが同時に8から16以上の接続をサポートできないと思います(仕様書には、チャットは50から100ユーザーをサポートしなければならないと書かれているので、8は・・・小さいです)。

それで...なぜこのようなことが起こったのか(昨日は15でうまくいっていました)、どのように解決するのか、どなたか教えていただけませんか?よろしくお願いします。もし、コードサンプルが必要でしたら、お申し付けください。

解決方法は?

Too Many Connections"エラーには、さまざまな原因があります。

MySQL.com の FAQ ページを参照してください。 http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html

my.cnfファイルにquot;max_connections"があるかどうか確認してください。 存在しない場合は、試してみてください。

[mysqld]
set-variable=max_connections=250

ただし、デフォルトは151なので、問題ないでしょう。

共有ホストを使用している場合、他のユーザーが接続数を増やしすぎている可能性があります。

その他、持続的な接続の使用やディスクスペースの不足にも注意が必要です。