MEMO REC

雑記帳兼php、mysql、html、css、javascript等の備忘録です。

【MySQL】MySQLセッションタイムアウト(wait_timeout)の時間を変更する方法

MySQLに接続してからの 接続維持時間(アイドリングするタイムアウト秒数)は
デフォルトで28800秒(8時間)に設定されています。

デフォルトの状態で「wait_timeout」を確認してみると下記のように「28800」になっています。

mysql> show global variables like '%wait%';
+---------------------------------------------------+----------+
| Variable_name                                     | Value    |
+---------------------------------------------------+----------+
| innodb_lock_wait_timeout                          | 50       |
| innodb_spin_wait_delay                            | 6        |
| lock_wait_timeout                                 | 31536000 |
| performance_schema_events_waits_history_long_size | 10000    |
| performance_schema_events_waits_history_size      | 10       |
| wait_timeout                                      | 28800    |
+---------------------------------------------------+----------+

デフォルトの時間を変更する場合はセッション変数(SET文)での変更が可能です。
ただ再起動した際に設定した内容はリセットされますので、
設定ファイル(my.cnf)に記載の上、MySQLの再起動が必要になる。

セッション変数で変更(SET文)

・300秒(5分)に変更する

mysql>set global wait_timeout=300;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like '%wait%';
+---------------------------------------------------+----------+
| Variable_name                                     | Value    |
+---------------------------------------------------+----------+
| innodb_lock_wait_timeout                          | 50       |
| innodb_spin_wait_delay                            | 6        |
| lock_wait_timeout                                 | 31536000 |
| performance_schema_events_waits_history_long_size | 10000    |
| performance_schema_events_waits_history_size      | 10       |
| wait_timeout                                      | 300    |
+---------------------------------------------------+----------+

グローバル変数で変更(my.cnfを編集)

・300秒(5分)に変更する
my.cnfに下記を追加後に再起動を行う

wait_timeout=300
mysql> show global variables like '%wait%';
+---------------------------------------------------+----------+
| Variable_name                                     | Value    |
+---------------------------------------------------+----------+
| innodb_lock_wait_timeout                          | 50       |
| innodb_spin_wait_delay                            | 6        |
| lock_wait_timeout                                 | 31536000 |
| performance_schema_events_waits_history_long_size | 10000    |
| performance_schema_events_waits_history_size      | 10       |
| wait_timeout                                      | 300    |
+---------------------------------------------------+----------+