MySql连接空闲8小时自动断开引起的问题
一、问题描述
最近遇到了一个奇怪的MySql数据库问题,好几次前一天晚上历史数据还正常存储,第二天早上来了看实时数据存储还正常,历史数据不存储了。找了好久也没找到问题。后来仔细想了想,历史数据设置了变化才存储,是不是数据一直不变,就一直没有往数据库写数据,导致MySql的连接太久不用自动断开了。然后就百度了一下,Mysql空闲连接有效时长,一看都说是8个小时就自动断开了。嗯,有点感觉了,应该就是这个原因。
二、问题排查
根据查到的资料查看MySql 有两个参数,可以设定空闲连接的有效时长,分别是interactive_timeout
和wait_timeout
,可以在mysql配置文件中设置。根据这一点,可以来进行排查了。
- 使用
show variables like '%timeout%';
命令查询以上两个参数的值,一查都是28800(单位是秒,刚好8小时)。 - 在mysql配置文件中修改
interactive_timeout