MySQL死鎖導致無法查詢解決

2022-04-08 13:39:24 字數 1333 閱讀 5112

mysql死鎖導致無法查詢解決

最近在維護資料庫時,解析資料時候,資料一直不能入庫。原因知道,是因為mysql的事務產生了死鎖,前幾次我直接重啟mysql。

www.2cto.com  

最近發現頻繁的出現。所以找到一種方法。

select * from information_schema.innodb_trx;  

trx_id trx_state trx_started trx_requested_lock_id trx_wait_started trx_weight trx_mysql_thread_id trx_query trx_operation_state trx_tables_in_use trx_tables_locked trx_lock_structs trx_lock_memory_bytes trx_rows_locked trx_rows_modified trx_concurrency_tickets trx_isolation_level trx_unique_checks trx_foreign_key_checks trx_last_foreign_key_error trx_adaptive_hash_latched trx_adaptive_hash_timeouttrx_id trx_state trx_started trx_requested_lock_id trx_wait_started trx_weight trx_mysql_thread_id trx_query trx_operation_state trx_tables_in_use trx_tables_locked trx_lock_structs trx_lock_memory_bytes trx_rows_locked trx_rows_modified trx_concurrency_tickets trx_isolation_level trx_unique_checks trx_foreign_key_checks trx_last_foreign_key_error trx_adaptive_hash_latched trx_adaptive_hash_timeout

www.2cto.com  

檢視事件比較久的事物。如何當前時間select sysdate();am 10:07而事物開始的時間是:am 9:50,顯示是不正常的。根據這個事物的執行緒id(trx_mysql_thread_id)。

執行命令:

kill 執行緒id  

資料庫修復正常。

檢視正在鎖的事務

select * from information_schema.innodb_locks;  

檢視等待鎖的事務

select * from information_schema.innodb_lock_waits;  

解決mysql事務死鎖問題 導致的無法查詢

1 執行事務死鎖查詢語句 select from information schema.innodb trx 2 在查詢到得結果,找這個字段 trx mysql thread id 記下數值 3 執行以下sql語句 kill 82230715 其中 82230715 為字段 trx mysql th...

index merge導致MySql死鎖問題

index merge 導致線上死鎖問題 問題造成條件 兩個事務分別執行兩次update操作 每個用到了兩個及以上索引 由於兩邊索引順序不一致導致 造成原因 innodb使用索引來實現行級別的鎖,事務a 通過index1 對某個欄位加了鎖 事務b 通過index2 對另乙個欄位加了鎖 兩個事務都持有...

MySQL 死鎖解決

檢視程序列表 show processlist 複製 乾掉死鎖的程序 kill 1490 複製 其它關於檢視死鎖的命令 1 檢視當前的事務 select from information schema.innodb trx 複製 2 檢視當前鎖定的事務 select from information...