"SQLSTATE[08004] [1040] Too many connections error" というエラーが Plesk インターフェースに表示されます

Created:

2016-11-16 13:05:17 UTC

Modified:

2017-06-22 06:48:22 UTC

22

Was this article helpful?


Have more questions?

リクエストを送信

"SQLSTATE[08004] [1040] Too many connections error" というエラーが Plesk インターフェースに表示されます

症状

Plesk インターフェースに以下のようなエラーが表示されることがあります。

Unable to connect to database: Too many connections

SQLSTATE[08004] [1040] Too many connections

原因

このエラーは、MySQL サーバへの同時接続数が上限に達したことを意味します。現在、サーバへの新規接続を確立することができません。

解決策

この問題を解決するには、2 種類の方法があります。最初の方法としては、接続数上限を増やします。2 番目の方法としては、"Too many connections" エラーの原因を特定し、それに基いて MySQL サーバの使用量を低減します。

MySQL サーバのステータスは mysqladmin ユーティリティを使用してチェックできます。例えば、現在のサーバ接続数を確認するには:

# mysqladmin -uadmin -p`cat /etc/psa/.psa.shadow` extended-status | grep Max_used_connections
| Max_used_connections | 11 |

現在の接続数上限は、以下の方法で確認できます。

# mysqladmin -uadmin -p`cat /etc/psa/.psa.shadow ` variables | grep 'max.*connections'
| max_connections | 100 |
| max_user_connections | 0

上記の例では、このサーバへの接続数上限( max_connections )が 100 に設定されています。ユーザあたりの接続数上限( max_user_connections )はゼロ、つまり無制限です。デフォルトの MySQL 値は、 /etc/my.cnf (Debian/Ubuntu の場合は /etc/mysql/my.cnf )で再定義できます。例:

[mysqld]
set-variable=max_connections=150
set-variable=max_user_connections=20

my.cnf の変更後に MySQL を再起動します。

/etc/init.d/mysqld restart

注:接続数上限を非常に高い値(300 以上)に設定すると、サーバのパフォーマンスが低下する可能性があります。MySQL サーバの使用量が異常に上昇した原因を見極めて是正することを推奨します。次のコマンドを実行することによって、現在のすべての接続のうち、どのユーザ/要求が MySQL のパフォーマンスを低下させているのかをチェックできます。

# mysqladmin -uadmin -p`cat /etc/psa/.psa.shadow` processlist
他にご質問がございましたら、リクエストを送信してください
ログインしてコメントを残してください。