Applicable to:
- Plesk for Linux
症状
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
コメント
0件のコメント
サインインしてコメントを残してください。