MySQL中Waiting for table metadata lock的解决方法
匿名用户1572018-02-28 16:15
数据插入长时间阻塞,没有进度,通过 show processlist发现要操作的表Waiting for table metadata lock 状态的连接。首先就是先kill掉,但是问题依旧存在。
1、查看没有提交的事务
- trx_state: 事务状态,一般为RUNNING
- trx_started: 事务执行的起始时间,若时间较长,则要分析该事务是否合理
- trx_mysql_thread_id: MySQL的线程ID,用于kill
- trx_query: 事务中的sql
select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.innodb_trx

一般只要kill掉这些线程,DDL操作就不会Waiting for table metadata lock。
kill trx_mysql_thread_id;
