MySQL表操作超時無響應

powerx_yc發表於2018-01-19

使用MySQL Workbench對錶進行操作時無響應,報出連線超時的錯誤。

Error Code: 2013 Lost connection to MySQL server during query

解決

檢視MySQL Workbench連線過期時間是否過短

Preferences-SQL Editor-MySQL Session


7391491-48a4336865e07712.png
MySQL Workbench

將過期時長設定長一點試試,如果還是不行則繼續排查。

檢視是否有被掛起的程式。

  • 開啟一個SQL執行視窗,收入以下命令檢視程式。

SHOW PROCESSLIST;

7391491-29d873f18318a7a0.png
檢視程式

檢視DB列是否是當前操作的資料庫,檢視INFO列是否有無響應的表的資訊。
若有,則記住該程式的ID,使用KILL命令殺死該程式。

KILL id(替換為程式ID);

再次嘗試操作表,若扔無反應,繼續排查。

檢視是否有未提交的事務。

SELECt trx_state, trx_started, trx_mysql_thread_id, trx_query FROM information_schema.innodb_trx;

若查詢結果中有問題表的相關記錄,則記住對應條目的trx_mysql_thread_id列的值,使用KILL命令殺死。
此時表應該可以恢復正常操作。

參考資料:
MySQL鎖表解決方法
MySQL出現Waiting for table metadata lock的原因以及解決方法
記一次MySQL中Waiting for table metadata lock的解決方法

相關文章