我用以下方法全局更改了这些超时:
SET GLOBAL wait_timeout=30; SET GLOBAL interactive_timeout=30
并注意到我正在运行另一个应用程序,该应用程序在这些"低"超时方面遇到了问题。所以我想撤消此操作,仅将其应用于特定数据库。
我在5.5.43
中遇到了同样的问题。对于一些超过 2 分钟的长时间查询,我收到"已消失"错误消息。所以我尝试了这 3 个:
(1) SHOW VARIABLES LIKE 'wait_%';
(2) SHOW global VARIABLES LIKE 'wait_%';
和
(3)SHOW session VARIABLES LIKE 'wait_%';
。
都表明wait_timeout是28800
.然后我wait_timeout = 31536000
添加到/etc/my.cnf
.然后我的长查询能够完成。从上述 3 种显示变量的方式来看,只有 (2) 带有"全局"的变量显示出从 28800 到 31536000 的变化。其他2个不受影响。 由于我的长查询肯定少于 10 分钟,这是否意味着这里使用的时间单位是毫秒而不是秒?
参考 MySQL 手册的默认值 -
wait_timeout和interactive_timeout是 - 28800 秒
记住 - 秒(28800 秒)
参考 MySQL 手册,wait_timeout
和 interactive_timeout
的默认值为 - 28800
。
在线程启动时,会话wait_timeout值从全局初始化 wait_timeout值或全局interactive_timeout值,具体取决于 客户端类型(由 CLIENT_INTERACTIVE 连接选项定义) mysql_real_connect())。另请参阅interactive_timeout。