现象: 无法对表进行任何操作,比如truncate table,比如select,一直处于等待状态。看起来像是表被锁了。

 

解决过程:

1. 查询占用中的查询:

show OPEN TABLES where In_use > 0;

结果是0行数据,表明没有任何查询在占用。

2. 查询当前的所有事务

select * from information_schema.innodb_trx;

果然有一条数据。找到trx_mysql_thread_id.

3. 先查看一下该进程是谁

show processlist;

4. 干掉该进程

kill 123456;

完成。

5. 重新检查第三步中的进程所用的sql。看看哪里有问题。

本文参考资料:

https://www.cnblogs.com/digdeep/p/4892953.html

https://blog.csdn.net/weixin_43870646/article/details/112956814

https://blog.csdn.net/yu121380/article/details/110132741

谢谢以上博主。