サーバーにログオンしてデータベースのステータスを確認し、SHOW PROCESSLIST;
非常に古いスリープ状態の接続が多数ある。
接続を強制終了するまでの接続時間制限はどのくらいの期間にする必要がありますか?
MySQL 5.0.51a-3ubuntu5.4で制限時間を設定するにはどうすればよいですか?
注意:
私はPHP 5.2.xおよびsymfonyフレームワーク1.2を使用しています。
mysqld
は、2つのサーバーオプションに基づいてデータベース接続をタイムアウトします。
どちらもデフォルトでは28,800秒(8時間)です。
これらのオプションは/etc/my.cnf
で設定できます
接続が永続的である(mysql_pconnect
を介して開かれる)場合は、これらの数値を600(10分)または60(1分)などの妥当な値に下げることができます。または、アプリが正常に動作する場合は、デフォルトのままにすることができます。これはあなた次第です。
これらをmy.cnf
で次のように設定する必要があります(mysqld
の再起動後に有効になります):
[mysqld]
interactive_timeout=180
wait_timeout=180
Mysqlを再起動したくない場合は、次の2つのコマンドを実行します。
SET GLOBAL interactive_timeout = 180;
SET GLOBAL wait_timeout = 180;
これはすでに開いている接続を閉じません。これにより、180秒で新しい接続が閉じます。