MySQL出现Lockwaittimeoutexceededtryrestartingtransaction

导读:本篇文章讲解 MySQL出现Lockwaittimeoutexceededtryrestartingtransaction,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

本文参考:https://www.cnblogs.com/guanbin-529/p/10993549.html

今天在一次单条数据插入操作时,Navicat客户端右下角提示:查询时间xxxs,即即查询时间多少秒,这个时间是一直增加的,最后定格在:查询时间50.855s。SQL执行结果信息提示如下:

1205 – Lock wait timeout exceeded; try restarting transaction

时间:50.824s

挺好奇这是什么错误,还有一个是两者的时间竟然不一样。

大意是:锁等待超时;请尝试重新启动事务

百度以后知道产生这个错误的原因是:后提交的事务等待前面处理的事务释放锁,但是在等待的时候超过了mysql的锁等待时间,就会引发这个异常。

后头想了一下,可能是之前一次执行sql插入的时候报错了,事务未提交,又重新进行插入的时候出现了这个问题。

通过执行sql语句:

select * from information_schema.INNODB_TRX;

得到如下图片:

MySQL出现Lockwaittimeoutexceededtryrestartingtransaction

百度后发现,并没有出现像其他博主所说的trx_state值为“LOCK WAIT”的记录,我这里只有一条记录,而且状态为RUNNING。

此时尝试KILL trx_mysql_thread_id,即执行命令:

KILL 458482

执行成功。

之后再进行操作就ok了。

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2747.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!