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


38

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

ここに画像の説明を入力してください 接続を強制終了するまでの接続時​​間の制限はどのくらいですか?

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

注意:

PHP 5.2.xとsymfonyフレームワーク1.2を使用しています。


回答:


53

mysqld 2つのサーバーオプションに基づいてデータベース接続をタイムアウトします。

デフォルトでは、両方とも28,800秒(8時間)です。

これらのオプションはで設定できます /etc/my.cnf

接続が永続的である場合(経由で開くmysql_pconnect)、これらの数値を600(10分)または60(1分)などの妥当な値に下げることができます。または、アプリが正常に動作する場合は、デフォルトのままにしておくことができます。これはあなた次第です。

これらを次のように設定する必要がありますmy.cnfmysqld再起動後に有効になります)。

[mysqld]
interactive_timeout=180
wait_timeout=180

mysqlを再起動したくない場合は、次の2つのコマンドを実行します。

SET GLOBAL interactive_timeout = 180;
SET GLOBAL wait_timeout = 180;

これは、既に開いている接続を閉じません。これにより、新しい接続が180秒で閉じられます。


だから/etc/my.cnfに私はちょうど置くwait_timeout=180だろうか?
パトリック

@Patrickはい、ただし、interactive_timeoutとwait_timeoutの両方を180に設定する必要があります。回答の回答を更新しました。
RolandoMySQLDBA

このファイルは別の場所にある場合がありますdev.mysql.com/doc/refman/5.1/en/option-files.htmlこれらのオプションは明示されていない可能性があります(自分で書きます)
-nicolallias
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.