ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction相关的知识,希望对你有一定的参考价值。

测试库一条update语句报错:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

mysql> UPDATE profitloss_collect_form SET ApproveStatus = 2
    -> WHERE formcode = ‘SY2015111803‘ AND (
    ->     SELECT COUNT(8) FROM profitloss_collect_form_detail WHERE formcode = ‘SY2015111803‘ AND checkstatus = 0
    -> ) = 0;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

update语句锁超时,一定是产生锁了。

mysql> select * from information_schema.innodb_trx\G
*************************** 1. row ***************************
                    trx_id: 3735875273
                 trx_state: RUNNING
               trx_started: 2015-12-07 16:55:32
     trx_requested_lock_id: NULL
          trx_wait_started: NULL
                trx_weight: 821
       trx_mysql_thread_id: 40566656
                 trx_query: NULL
       trx_operation_state: NULL
         trx_tables_in_use: 0
         trx_tables_locked: 0
          trx_lock_structs: 817
     trx_lock_memory_bytes: 95784
           trx_rows_locked: 104599
         trx_rows_modified: 4
   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: 10000
          trx_is_read_only: 0
trx_autocommit_non_locking: 0
*************************** 2. row ***************************
                    trx_id: 3731614168
                 trx_state: RUNNING
               trx_started: 2015-12-07 11:14:59
     trx_requested_lock_id: NULL
          trx_wait_started: NULL
                trx_weight: 0
       trx_mysql_thread_id: 40317084
                 trx_query: insert into profitloss_collect_form_detail ........
       trx_operation_state: NULL
         trx_tables_in_use: 1
         trx_tables_locked: 0
          trx_lock_structs: 0
     trx_lock_memory_bytes: 360
           trx_rows_locked: 0
         trx_rows_modified: 0
   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: 10000
          trx_is_read_only: 1
trx_autocommit_non_locking: 1
2 rows in set (0.00 sec)


mysql> kill 40317084;

以上是关于ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction的主要内容,如果未能解决你的问题,请参考以下文章

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction解决办法

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction解决

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

执行 update操作的时候有报错 ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction