我试图通过暂时将“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)
答案 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 ,超时也适用于与命名管道或共享内存的连接,但显然文档尚未更新。)