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,查询的才是全局变量。