mysql运行中的事务导致锁表

有时代码的不合理操作会导致,事务不能提交,mysql表上执行任何的操作,都在等待,查询也好,修改也好,所有的进程,都会卡在那里,然后你会慌,误以为电脑怎么卡了,这个时候呢,要排查问题。

首先,查询当前的系统进程

show processlist;

如果有等待的进程,状态就会显示在等待,同时info会显示执行的sql

第一步只是确认你的操作确实被锁了,第二步就是查询事务了

SELECT * from information_schema.innodb_trx;

这是表里就会有一条trx_state为running的记录,然后记下trx_mysql_thread_id这个字段的值,这个值是进程id

干掉那个进程id就可以了

在mysql中执行:kill [trx_mysql_thread_id] 即可。