開發Go項目中,有時候在有大量操作Mysql時,有時候會發生如下錯誤。
"driver: bad connection"
原因
這是因爲Mysql服務器主動關閉了Mysql鏈接。
在項目中使用了一個mysql鏈接,同時使用了事務,處理多個表操作。處理時間長。
導致空閒鏈接超時,Mysql關閉了鏈接。而客戶端保持了已經關閉的鏈接。
具體原因是
沒有設置 db.SetConnMaxLifetime ,導致客戶端保持了已經關閉的鏈接。
解決
// 設置數據庫閒鏈接超時時間
write.SetConnMaxLifetime(time.Second * 300)