加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL中的wait_timeout值

发布时间:2017-06-26 01:31:28 所属栏目:编程 来源:站长网
导读:假如你没有修悔改MySQL的设置,缺省环境下,wait_timeout的初始值是28800。 wait_timeout过大有破绽,其浮现就是MySQL里大量的SLEEP历程无法实时开释,拖累体系机能,不外也不能把这个指配置的过小,不然你可 能会遭碰着MySQL has gone away之类的题目,通

假如你没有修悔改MySQL的设置,缺省环境下,wait_timeout的初始值是28800。

wait_timeout过大有破绽,其浮现就是MySQL里大量的SLEEP历程无法实时开释,拖累体系机能,不外也不能把这个指配置的过小,不然你可 能会遭碰着“MySQL has gone away”之类的题目,凡是来说,我认为把wait_timeout配置为10是个不错的选择,但某些环境下也许也会出题目,好比说有一个CRON剧本, 个中两次SQL查询的隔断时刻大于10秒的话,那么这个配置就有题目了(虽然,这也不是不能办理的题目,你可以在措施里时不时mysql_ping一下, 以便处事器知道你还在世,从头计较wait_timeout时刻):

# vi /etc/my.cnf

[mysqld]

wait_timeout=10

# /etc/init.d/mysql restart

不外这个要领太生硬了,线上处事重启无论怎样都应该尽也许停止,看看如安在MySQL呼吁行里通过SET来配置:

mysql> set global wait_timeout=10;

mysql> show global variables like 'wait_timeout';

+----------------------------+-------+

| Variable_name              | Value |

+----------------------------+-------+

| wait_timeout               | 10    |

+----------------------------+-------+

这里一个轻易把人搞蒙的处所是假如查询时行使的是show variables的话,会发明配置仿佛并没有见效,这是由于纯真行使show variables的话就等同于行使的是show session variables,查询的是会话变量,只有行使show global variables,查询的才是全局变量。

收集上许多人都诉苦说他们set global之后行使show variables查询没有发明改变,缘故起因就在于夹杂了会话变量和全局变量,假如仅仅想修改会话变量的话,可以行使相同set wait_timeout=10;可能set session wait_timeout=10;这样的语法。

另一个值得留意的是会话变量wait_timeout初始化的题目,这一点在手册里已经明晰指出了,我就直接拷贝了:

On thread startup, the session wait_timeout value is initialized from the global wait_timeout value or from the global interactive_timeout value, depending on the type of client (as defined by the CLIENT_INTERACTIVE connect option to mysql_real_connect()).

MySQL大拿Jeremy Zawodny曾在他的文章Fixing Poor MySQL Default Configuration Values内里列出了几个很恶心的MySQL缺省配置,不外没包括wait_timeout,但我认为它也应该算一个,每次新装MySQL后最好都记得修改它。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读