作者:吴慈瑋宗杰 | 来源:互联网 | 2020-11-28 00:51
解决mysql删除表时锁表问题的方法:首先查询是否有正在执行的事务,如果有未提交的事务,则kill事务或等待事务提交;然后重新执行删除表操作即可。
问题描述:
(推荐教程:mysql视频教程)
1、drop table 的时候导致表被锁,一直再等待。
2、SHOW FULL PROCESSLIST ; 能找到等待中的进程。
3、kill 相应的锁之后,查询不受影响。
4、再次删除这个表又出现锁表。
问题解决:
通过如下语句查询是否有正在执行的事务, 如果有未提交的事务, 可以考虑kill事务或等待事务提交。
SELECT trx_state, trx_started, trx_mysql_thread_id, trx_query FROM information_schema.innodb_trx;
查询到一个正在执行的事务,kill掉之后执行删除表操作正常。