问题描述
之前有遇到过MySQL wait_timeout超时问题,主要是因为在使用数据库连接池时,获取到的连接空闲时长由于超过了wait_timeout设置的时间,导致该连接被MySQL服务端释放掉了,最终在使用时产生报错现象。
wait_timeout
先了解下MySQL中的wait_timeout参数

官网文档中对于wait_timeout参数的一些相关属性已经给出了明确的说明,首先可以看到wait_timeout的默认值是28800秒,也就是当连接空闲时长超过8小时就会自动断开,在非windows环境下,最大可以设置31536000秒,等于365天。
修改wait_timeout默认值
如果你需要修改wait_timeout的时间,可以使用
set wait_timeout = 28800;
也可以修改my.cnf配置,不过我们在上图中可以看到,wait_timeout的作用域有两种,一种是session级别,一种是global级别,而刚才这两种方式的作用域都是session级别的,当服务重启后就会失效,所以要想设置global永久级别的需要通过如下方式执行

本文介绍MySQL中wait_timeout参数及其默认值,并提供修改方法。同时,通过合理配置数据库连接池参数,如Druid连接池,有效避免wait_timeout超时问题。

9497

被折叠的 条评论
为什么被折叠?



