MySQL error wait_timeout in SQLyog

Following this question , I set the following MySQL parameter to C:\Program Files\MySQL\MySQL Server 5.5\my.ini (Linux equivalent of my.cfg ):

 [mysqld] wait_timeout=2147483 

After restarting Windows, I used SQLyog to see the effect:

  • SHOW SESSION VARIABLES LIKE 'wait_timeout' yielded 28800
  • SHOW GLOBAL VARIABLES LIKE 'wait_timeout' yielded 2147483

How did it happen? I thought that global parameters are used as default for each new session.

+1
source share
2 answers

Bonus answer: I read the sqlYog source code.

This is a feature : if the timeout parameter is > 28800 , it is hard-coded to change the session timeout to 28800 in CommonHelper.cpp .

 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()); 

This explains what you see.

+2
source

See http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_wait_timeout for more information.

The answer to MySql 'wait_timeout' Global Variable vs Variable may also help you.

Basically, this is an important bit:

When the stream starts, the session wait_timeout value is initialized from the global wait_timeout value or the global interactive_timeout value, depending on the type of client (as determined by CLIENT_INTERACTIVE to connect the option to mysql_real_connect ()). See also interactive_timeout.

+1
source

Source: https://habr.com/ru/post/1381856/


All Articles