MySQL server has gone away 的兩個最多見的可能性

背景html

  今天測試同窗反饋他們docker中的測試庫時不時就就報「MySQL server has gone away」,事態之緊急搞的我都有點怕了(像我這麼成熟穩重mysql

  的DBA怎麼有可能怕呢);sql

 

  第一感受就是他們的測試環境必定是老半天都不見一個SQL來的,等到要發第二個SQL的時候不知道是過了多少年了(傲慢),因而我上去就直docker

  接把timeout值給調整到了一天;讓測試同步重啓一下中間件再試一波,5分鐘沒到又報錯了。數據庫

 

MySQL server has gone away的可能緣由有那些測試

  一、超時,超時的閥值有wait_timeout這個參數控制spa

  二、鏈接被人爲的killserver

  三、發送的SQL語句過大超過max_allowed_packet的大小htm

  四、其它緣由:DNS解析失敗,... ...中間件

 

反思

  不要過小看測試環境的數據庫和SQL語句的複雜度,他們分分鐘能夠把一條insert搞到64M以上;上面的這個問題我是經過把 max_allowed_packet

  調整到 1G 解決的。

 

官方參考

  https://dev.mysql.com/doc/refman/8.0/en/gone-away.html

  https://sqlpy.com

---

相關文章
相關標籤/搜索