2017-08-04 119 views
1

重新啓動事務我插入一個數據到我的一個表中,並且我不斷收到一個鎖。MySQL錯誤代碼:1205.鎖超​​時超時;嘗試插入

insert into inventory_files(id, pro_id) values(30,6569); 

我收到以下錯誤消息。

Error Code: 1205. Lock wait timeout exceeded; try restarting transaction 51.004 sec 

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ; 

然後插入該數據。

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ; 

我沒有問題插入到其他表中。任何其他建議。
我也跑了。

SHOW ENGINE INNODB STATUS; 

沒有表鎖定。

'的InnoDB', '','

2017年8月4日13點57分34秒0x7f0c44461700 INNODB MONITOR OUTPUT 每從最後29秒計算出的第二平均值

後臺線程

srv_master_thread循環:93 srv_active,0 srv_shutdown,2985 srv_idle

srv_master_thread日誌刷新和寫入:3076

SEMAPHORES

OS WAIT ARRAY INFO:保留數29

OS WAIT ARRAY INFO:信號計數29

RW-共享旋轉0,輪52,OS等待26

RW-不含自旋0,舍入0,OS等待0

RW-SX旋轉0,舍入0,OS等待每等待0

自旋輪:52.00 RW-共享, 0.00 RW-excl,0。00 RW-SX

交易

事務處理標識計數器2147575956 \ n 吹掃TRX n值完成:○< 2147575378撤消N:Ø< 0狀態:運行,但空閒

歷史記錄列表長度91

每個會話的交易清單中:

---交易421165916588792,沒有開始

0鎖結構(一個或多個),堆大小1136 0行鎖(S)

--- TRANSACTION 421165916587872,未啓動

0鎖結構(一個或多個),堆大小1136 0行鎖(多個)

--- TRANSACTION 2147575922,ACTIVE 104秒

6鎖定結構(一個或多個),堆大小1136,52行鎖(S),撤消日誌條目5

MySQL的線程ID 32, OS線程句柄139690660574976,查詢ID 43020本地主機127.0.0.1 my_web_用戶

--- TRANSACTION 2147575860,ACTIVE 211秒

6鎖定結構(一個或多個),堆大小1136,52行鎖(S),撤消日誌條目5 MySQL的線程ID 30,OS線程句柄139690661377792的查詢ID 40076本地主機127.0.0.1 my_web_user

--- TRANSACTION 2147575771,ACTIVE 413秒 6鎖定結構(一個或多個),堆大小1136,52行鎖(S),撤消日誌條目5 MySQL的線程id 23 ,OS線程句柄139690660976384,查詢ID 35541本地主機127.0.0.1 my_web_user

--- TRANSACTION 2147575640,ACTIVE 540秒 6鎖定結構(一個或多個),堆大小1136,52行鎖(S),撤消日誌條目28 MySQL的線程ID 16,OS線程句柄139690661177088,查詢ID 29555本地主機127.0。 0.1 my_web_user

--- TRANSACTION 2147575372,ACTIVE 990秒 6鎖定結構(一個或多個),堆大小1136,52行鎖(S),撤消日誌條目28 MySQL的線程ID 11,OS線程句柄139690661578496,查詢ID 4137本地主機127.0.0.1 my_web_user

的Trx讀視圖不會看到TRX ID爲> = 2147575373,看到文件I/O I/O線程0狀態:瓦特愛聽已完成的AIO請求(插入緩衝線程) 我假設my_web_user鎖定該行。你如何解鎖該行?

+0

的可能的複製[MySQL錯誤1205:鎖等待超時超標(https://stackoverflow.com/問題/ 2383694/mysql-error-1205-lock-wait-timeout-exceeded) – nacho

+0

「沒有表鎖定。」雖然技術上是真的(因爲InnoDB鎖定了行,而不是表),但你當然有鎖。 'SHOW ENGINE INNODB STATUS;'實際上是一個尋找它的好地方,所以再看看,你可能只是沒有找到它。或者將輸出添加到您的問題中,我們可能會幫助您找到它。 – Solarflare

+0

它再次鎖定。我將發佈發動機輸出。 – user3525290

回答

1

主要原因我有當現有的進程運行時,這防止了對相同的表正在執行一個新的流程該錯誤。

嘗試

Show full processlist; kill x; 

與您認爲這個過程號代替x導致問題

相關問題