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.
source share