mysql 案例 ~timeout相关问题与错误信息


一 简介:今天咱们来谈谈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类似)

      缓存此会话链接,当链接重新被启用时,重新刷新time统计时间,如果sleep时间超过wait_timeout就会导致出连接被kill

四 总结
  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 away

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参数

posted @ 2019-02-28 13:51  开心的蛋黄派  阅读(1266)  评论(0编辑  收藏  举报