2023年4月20日 星期四

當MySQL遇上死鎖ER_LOCK_WAIT_TIMEOUT

當MySQL資料庫處理時遇到ER_LOCK_WAIT_TIMEOUT時,代表該表有交易還沒結束掉,要查詢到底是哪一筆交易沒結束掉可以使用以下SQL,DB_NAME請替換成自己的資料庫名稱

SELECT CONCAT('KILL ', ID, ';')
FROM INFORMATION_SCHEMA.PROCESSLIST
WHERE DB = [DB_NAME] AND TIME >= 10;

之後可以得到該執行序的id,然後直接下SQL,上面這個語法直接幫你把要下的SQL組合起來了,下完就海闊天空了~

KILL [ID];

沒有留言:

張貼留言