一 简介:今天我们来谈谈mysql的链接时间与会话关系
二 分类
mysql会话分类
1 程序链接session(最主要的)
2 binlog链接session(复制+canal消费)
3 root session
mysql超时参数(5.6,5.7增长前缀net)
interactive_timeout
wait_timeout
三 两个超时参数的对比
1 interactive_timeout
1 默认8小时 2 针对交互式场景(手动执行,mysqldump)
2 wait_timeout
1 默认8小时 2 针对非交互式场景(jdbc,pymysql相似)java
缓存此会话连接,当连接从新被启用时,从新刷新time统计时间,若是sleep时间超过wait_timeout就会致使出链接被killmysql
四 总结
1 timeout只针对空闲连接
2 非交互式场景只集成wait_timeout
3 交互式场景下interactive_timeout会覆盖session级别wait_timeout的值
4 经过show processlist能够观察到创建链接时间
五 经典报错
1 Lost connection to MySQL server during query
2 MySQL server has gone awaysql
3 Got an error reading communication packet缓存
问题分析 没有正确关闭连接
如下几种状况
1 程序sleep时间超过wait_timeout设置时间致使被kill
2 交互式时间超过 interactive_timeout 设置时间致使被kill
3 java等程序发送数据包超过 max_allowed_packet的最大限制
4 DNS解析问题,没有配置skip-name-reslove参数session