web-dev-qa-db-ja.com

MySQL接続がスリープするには「長すぎる」のはどれくらいですか?

サーバーにログオンしてデータベースのステータスを確認し、SHOW PROCESSLIST;非常に古いスリープ状態の接続が多数ある。

enter image description here 接続を強制終了するまでの接続時​​間制限はどのくらいの期間にする必要がありますか?

MySQL 5.0.51a-3ubuntu5.4で制限時間を設定するにはどうすればよいですか?

注意:

私はPHP 5.2.xおよびsymfonyフレームワーク1.2を使用しています。

39
Patrick

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秒で新しい接続が閉じます。

54
RolandoMySQLDBA