使用 Navicat 連接服務器上的數據庫時,如果隔一段時間沒有使用,再次點擊就會出現卡頓的問題。
如:隔一段時間再查詢完數據會出現:
2013 - Lost connection to MySQL server at 'waiting for initial communication packet', system error: 0
原因:
Mysql 服務端會定時清理長時間不活躍空閑的數據庫連接,以優化數據庫的性能。
Navicat 客戶端有一個設置:保持連接間隔,默認是 240 秒,即客戶端在用戶無任何交互性操作時,會每隔 240 秒給 Mysql 服務端發送一次數據請求,以此來保持數據庫連接活躍。
但是Navicat 設置的心跳檢測間隔太長了,Mysql 服務端直接將連接清理掉了。
所以,當我們再次執行語句時,Navicat 還是使用舊的連接去請求數據,發現舊的連接超時不能用了,最后又申請了一個新的連接,再去請求數據,因此過一會再次使用時 Navicat 會卡頓一會兒。
解決:
Navicat –> 對應數據庫 –> 右鍵編輯連接 –> 高級 – 勾選保持連接間隔(秒) – 輸入框設置為60