今天在清空mysql数据库中的表格数据时,报了如下错误,导致操作失败:
上网查找了一下,了解到了该类问题出现的主要原因是:Mysql的 InnoDB存储引擎是支持事务的,事务开启后没有被主动Commit,导致该资源被长期占用,其他事务在抢占该资源时,因上一个事务的锁而导致抢占失败!因此出现 Lock wait timeout exceeded。
解决办法:
方法一:
1. 查看事物表,找出被锁线程的id:SELECT * FROM information_schema.INNODB_TRX;
2. 根据id,kill掉被锁住的线程:kill 65
方法二:
1. 执行MySQL命令:SHOW FULL PROCESSLIST; 找到被锁住的线程ID(如下图中的65)
2. 根据id,kill掉被锁住的线程:kill 64
本文介绍了解决MySQL数据库中出现Lockwaittimeoutexceeded错误的方法。主要原因是由于InnoDB存储引擎的事物未被及时提交导致资源被长期占用。文章提供了两种解决方式:通过查询INNODB_TRX表或使用SHOW FULL PROCESSLIST命令来找到被锁定的线程,并使用kill命令结束该线程。

349

被折叠的 条评论
为什么被折叠?



