mysql中有一個配置參數wait_timeout.
參數的意思:指的是mysql在關閉一個非互動的連接配接之前所要等待的秒數.
(1)如果設定大小,那麼連接配接關閉的很快,進而使一些持久的連接配接不起作用
(2)如果設定太大,容易造成連接配接打開時間過長,在show processlist時,能看到太多的sleep狀态的連接配接,進而造成too many connections錯誤
(3)一般希望wait_timeout盡可能地低
set global wait_timeout=10;
(root@localhost) [(none)]> show global variables like 'wait_timeout';
error 2006 (hy000): mysql server has gone away
no connection. trying to reconnect...
connection id: 79
current database: *** none ***
+---------------+-------+
| variable_name | value |
| wait_timeout | 3600 |
1 row in set (0.00 sec)
這裡一個容易把人搞蒙的地方是如果查詢時使用的是show variables的話,會發現設定好像并沒有生效,這是因為單純使用show variables的話就等同于使用的是show session variables,預設的逾時時間為28800s,查詢的是會話變量,隻有使用show global variables,查詢的才是全局變量。