问题描述:
在测试服出现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';