关于mysql系统参数的修改(全局参数和会话参数)

今天配合同事做了一个测试,需要修改wait_timeout的值,但是发现改了全局参数global variables 之后,查看会话参数show variables,却发现没有变化。这是因为没有重启,但是已经设置成功了,mysql5.1开始修改系统参数就不需要重启mysql了。而且有意思的是,修改了会话参数set wait_timeout = 60之后,过一会再查show variables ,发现又变成默认值28800了。这是因为session过了60秒重新连接了,所以看到的还是旧的(失效的)。我倒是觉得这是mysql一个bug,或者是可以改进的地方。
 
网上查了一下,觉得这个文章写得最好,转载一下。
 
全局变量wait_timeout是设置mysql空闲的超时时间,默认不设置的值是28800 (8小时)。对于一个繁忙的系统,一般都要求设置wait_timeout,避免程序异常没有释放连接,导致占用连接浪费数据库资源。
但是wait_timeout也不能设置太短,某些脚本和程序运行时间可能比较长,个人建议wait_timeout设置到3600 (1小时)比较合适,具体也要看使用的场景。

另外一个需要注意的是mysql的变量scope有global和session的区分,wait_timeout这个变量具有global的值,也有session的值,所以动态设置的时候需要特别注意。
mysql>set global wait_timeout=3600; 设置的是global变量,然后你用show variables like 'wait_timeout'; 看到还是28800,你可能怀疑没有设置成功,但是其实是设置成功的。因为show variables = show session variables, 查看的是session变量。你应该用:
mysql>show global variables like 'wait_timeout'; 就可以看到设置的效果了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26865454/viewspace-750567/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26865454/viewspace-750567/

你可能感兴趣的:(关于mysql系统参数的修改(全局参数和会话参数))