首先,對於這個問題的一些相關知識的說明:數據庫
1.當一個鏈接和數據庫創建鏈接以後,這個鏈接時可使用的,可是當這個鏈接不被使用,以後的一段時間以後,MySQL服務器端,可能會主動關閉這個鏈接,而當你再次再去使用這個鏈接的時候,就發生了gone away的錯誤。服務器
對於你的實際現象的解釋,就是當你業務量大了以後,你的代碼會向MySQL服務器端創建大量的鏈接,而當某些鏈接使用完畢後,而沒有及時的關閉它,或者繼續保持鏈接的「活性」,從而致使接下來的代碼再次使用這個鏈接的時候,出現了gone away的錯誤,這是由於MySQL服務端可能已經主動關閉了這個鏈接。ui
解決辦法:服務器端
能夠參考一些成熟的MySQL數據庫鏈接方案,通常來講能夠直接使用對應語言的比較成熟的數據庫鏈接庫:數據
(Python建議:DBUtils,Java建議Druid)語言
1.創建鏈接池,系統一啓動就維護必定數量的鏈接,這樣能夠減小不少關閉以及從新建立帶來的系統開銷,轉而是去維護一個鏈接池,我須要了就去池子裏面去取,我用完了,就歸還這個池子,看起來是被關閉了,實際上是被池子收回了。服務端
2.保持鏈接池中的每一個鏈接的「活性」,比方說,定時ping它,或者說,當檢測到某個鏈接ping不通的時候,從新建立一個,並用從新建立的鏈接,去替換掉池子中那個已經斷開的鏈接。時間
等等。這些因素在這些成熟的鏈接池方案中,也已經被考慮在裏面了。ping
最後,但願我說的對你有些幫助。錯誤