MySql'wait_timeout'全局变量与变量

时间:2011-04-30 00:44:10

标签: mysql

我试图通过暂时将“wait_timeout”减少到60秒而不是默认的28800秒来重现连接超时错误。

我将wait_timeout = 60添加到my.ini文件并重新启动MySql。不幸的是,我仍然无法重现错误条件(除非我想等待28800秒)。

下面的查询似乎表明“wait_timeout”在全局变量级别设置为60,但对于常规变量仍然设置为28800秒(与会话变量相同吗?)。

我该如何纠正?如何覆盖my.ini中的设置?

感谢您的任何建议,因为我仍然是一个MySql管理员菜鸟。 :)

我在Windows XP上运行MySql 5.5.10。

mysql> show variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 28800 |
+---------------+-------+
1 row in set (0.00 sec)

mysql> show global variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 60    |
+---------------+-------+
1 row in set (0.00 sec)

1 个答案:

答案 0 :(得分:7)

来自MySQL文档:wait_timeout

  

在线程启动时,会话wait_timeout值从全局初始化    wait_timeout 值或全局 interactive_timeout 值,具体取决于   客户端类型(由CLIENT_INTERACTIVE连接选项定义)   mysql_real_connect())。另请参见interactive_timeout。

您还应该降低ini文件中的interactive_timeout全局变量。

另请注意:

<击>   

此超时仅适用于TCP / IP和Unix套接字文件连接,     不是使用命名管道或共享内存建立的连接。

(正如Vladislav指出的那样,上面的注释应该被忽略,如 this bug has been fixed ,超时也适用于与命名管道或共享内存的连接,但显然文档尚未更新。)