MySQL出现Waiting for table metadata lock解决方法

“今人不见古时月,今月曾经照古人”
今天发现项目很慢,,有时登录需要好几分钟才能登录上去.经过检查,发现数据库很多SQL的状态都是Waiting for table metadata lock
这里写图片描述

究其原因,是因为有很多事物没有提交,查询事物语句:

select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.innodb_trx

这里写图片描述
我这里目前是没有未提交的事物.这里查出来的字段解释一下:

trx_state: 事务状态,一般为RUNNING
trx_started: 事务执行的开始时间
trx_mysql_thread_id: MySQL的线程ID,用于kill
trx_query: 事务中的sql

查出未提交事物后,然后kill掉对应的线程 ID,这样DDL操作就不会Waiting for table metadata lock。.

猜你喜欢

转载自blog.csdn.net/a_runner/article/details/80244658
今日推荐