问题描述:
在测试服出现Lock wait timeout exceeded; try restarting transaction,导致无法再获取锁添加数据到数据库的表(mysql无法Insert数据报错 Lock wait timeout exceeded; try restarting transaction)
原因:系统盘满了,我清理过后,mysql数据库还在写文件的句柄没放开,只能重启mysql服务,问题解决!
select * from information_schema.INNODB_LOCKS ## 当前运行的所有事务
select * from information_schema.INNODB_TRX ## 当前出现的锁
SELECT * from information_schema.INNODB_LOCK_WAITS ## 锁等待的对应关系

图中红色语句为占用系统资源的语句,我们需要杀掉这个锁,执行 kill 线程id号。上面这条记录的id为319618246
所以我们执行:kill 319618246即可
查看超时时间:
show variables like 'innodb_lock_wait_timeout';
本文介绍了一种在测试服中遇到的MySQL锁等待超时问题及其解决方案。问题表现为无法向数据库表插入数据,错误信息为Lockwaittimeoutexceeded;tryrestartingtransaction。通过检查发现系统盘满是根本原因,清理后仍需重启MySQL服务才能解决问题。文章还提供了查询当前运行事务、锁状态及锁等待关系的SQL语句,并展示了如何终止占用资源的锁定事务。

7833

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



