您好,登錄后才能下訂單哦!
本篇內容主要講解“MySQL未提交事務造成的等待事件怎么解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MySQL未提交事務造成的等待事件怎么解決”吧!
開發人員過來說程序中無法修改數據
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
查看是如下SQL語句造成的
UPDATE
MemberAttribute
SET name = '而',required = 1, enabled = 1, sequence = 34
, memberTemplate_id = 698
WHERE
id = 284 and deleted = false;
剛開始一直考慮死鎖,但一直無死鎖信息
如果單獨的一條sql是不會千萬死鎖的,肯定有其他語句
查看未提交的事務
SELECT
a.trx_id,
a.trx_state,
a.trx_started,
a.trx_query,
b.ID,
b.USER,
b.DB,
b.COMMAND,
b.TIME,
b.STATE,
b.INFO,
c.PROCESSLIST_USER,
c.PROCESSLIST_HOST,
c.PROCESSLIST_DB,
d.SQL_TEXT
FROM
information_schema.INNODB_TRX a
LEFT JOIN information_schema.PROCESSLIST b ON a.trx_mysql_thread_id = b.id
AND b.COMMAND = 'Sleep'
LEFT JOIN PERFORMANCE_SCHEMA.threads c ON b.id = c.PROCESSLIST_ID
LEFT JOIN PERFORMANCE_SCHEMA.events_statements_current d ON d.THREAD_ID = c.THREAD_ID;
確實有未提交事務
查看未提交線程id
SELECT * FROM information_schema.INNODB_TRX \G
*************************** 12. row ***************************
trx_id: 188721461
trx_state: RUNNING
trx_started: 2016-01-06 09:41:22
trx_requested_lock_id: NULL
trx_wait_started: NULL
trx_weight: 26
trx_mysql_thread_id: 2122328
trx_query: NULL
trx_operation_state: NULL
trx_tables_in_use: 0
trx_tables_locked: 0
trx_lock_structs: 24
trx_lock_memory_bytes: 6544
trx_rows_locked: 3003
trx_rows_modified: 2
trx_concurrency_tickets: 0
trx_isolation_level: REPEATABLE READ
trx_unique_checks: 1
trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
trx_adaptive_hash_latched: 0
trx_adaptive_hash_timeout: 0
trx_is_read_only: 0
trx_autocommit_non_locking: 0
與niravana數據庫相關的進程只有2122328
kill 2122328
再次修改即可
到此,相信大家對“MySQL未提交事務造成的等待事件怎么解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。