【问题标题】:MySQL's wait_timeout incorrect in SQLyogSQLyog 中的 MySQL wait_timeout 不正确
【发布时间】:2011-11-20 10:11:31
【问题描述】:

this question之后,我在C:\Program Files\MySQL\MySQL Server 5.5\my.ini中设置了以下MySQL参数(相当于Linux的my.cfg):

[mysqld]
wait_timeout=2147483

重启Windows后我用SQLyog看看效果:

  • SHOW SESSION VARIABLES LIKE 'wait_timeout' 给出了28800 的结果
  • SHOW GLOBAL VARIABLES LIKE 'wait_timeout' 给出了2147483 的结果

怎么会?我认为全局参数被用作每个新会话的默认值。

【问题讨论】:

    标签: mysql configuration sqlyog


    【解决方案1】:

    奖励答案:我已经浏览了 sqlYog 的源代码。

    这是一个feature:如果超时设置> 28800,它是硬编码的 在CommonHelper.cpp 中将会话超时更改为 28800。

    3314   //Session wait_timeout3315   timeout = conn->m_strwaittimeout.GetAsUInt32();
    3316 
    3317   if(timeout > 28800 || timeout <= 0)
    3318     conn->m_strwaittimeout.SetAs("28800");
    3319 
    3320   strtimeout.Sprintf("/*!40101 set @@session.wait_timeout=%s */", conn->m_strwaittimeout.GetString());
    3321   mysql_options(*pmysql, MYSQL_INIT_COMMAND, strtimeout.GetString());
    

    这解释了你所看到的。

    【讨论】:

    • 你完全正确! Eljakim,我将改变这个问题,这就是答案并接受它。您可能希望删除您的其他答案,因为它将变得无关紧要
    【解决方案2】:

    http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_wait_timeout 了解更多信息。

    MySql 'wait_timeout' Global Variable vs Variable 的答案也可能对您有所帮助。

    基本上,这是重要的一点:

    在线程启动时,会话 wait_timeout 值从 全局 wait_timeout 值或来自全局 interactive_timeout 值,取决于客户端的类型(由 CLIENT_INTERACTIVE 连接选项到 mysql_real_connect())。也可以看看 交互超时。

    【讨论】:

    • wait_timeout=2147483interactive_timeout=2147483 都放在[mysqld] 下 - 它没有帮助
    • 您确定不是 SQLyog 问题吗?在定义连接的屏幕上,您可以指定会话超时值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 2014-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    相关资源
    最近更新 更多