MySQL 事务没有提交导致 锁等待 Lock wait timeout exceeded

Posted 汤高

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 事务没有提交导致 锁等待 Lock wait timeout exceeded相关的知识,希望对你有一定的参考价值。

Lock wait timeout exceeded

当一个SQL执行完了,但未COMMIT,后面的SQL想要执行就是被锁,超时结束;

select * from information_schema.innodb_trx 之后找到了一个一直没有提交的只读事务,

kill 到了对应的线程后ok 了。



mysql> 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_timeout |
+--------+-----------+---------------------+-----------------------+------------------+------------+---------------------+-----------+---------------------+-------------------+-------------------+------------------+-----------------------+-----------------+-------------------+-------------------------+---------------------+-------------------+------------------------+----------------------------+---------------------------+---------------------------+
| F663B  | RUNNING   | 2016-11-09 10:15:52 | NULL                  | NULL             |         10 |               14310 | NULL      | NULL                |                 0 |                 0 |                7 |                  1248 |               4 |                 3 |                       0 | REPEATABLE READ     |                 1 |                      1 | NULL                       |                         0 |                      9999 |
+--------+-----------+---------------------+-----------------------+------------------+------------+---------------------+-----------+---------------------+-------------------+-------------------+------------------+-----------------------+-----------------+-------------------+-------------------------+---------------------+-------------------+------------------------+----------------------------+---------------------------+---------------------------+
1 row in set


mysql> kill 14310 ;
Query OK, 0 rows affected


mysql>

以上是关于MySQL 事务没有提交导致 锁等待 Lock wait timeout exceeded的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 事务没有提交导致 锁等待 Lock wait timeout exceeded

MySQL事务没有提交导致 锁等待Lock wait timeout exceeded异常的处理办法

MySQL 锁等待超时(Lock wait timeout exceeded)

mysql事务未提交导致锁等待如何解决

mysql行锁等待异常

极客mysql06