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參數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM