位置: 编程技术 - 正文

mysql报错:Deadlock found when trying to get lock; try restarting transaction的解决方法(mysql 报错)

编辑:rootadmin

推荐整理分享mysql报错:Deadlock found when trying to get lock; try restarting transaction的解决方法(mysql 报错),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql error!,mysql error!,mysql错误提示,mysql报错hy000,MySQL报错1045,Navicat连接MySQL报错,mysql 报错,mysqldeclare报错,内容如对您有帮助,希望把文章链接给更多的朋友!

发现问题

最近在补以前数据的时候程序突然报如下错误:

一看就是mysql出现了死锁问题,其实上面跑的程序在测试服跑了好久都没什么问题,为什么在正式服上会出现mysql的死锁问题呢,第一反应是不是数据量太大(3百多万条),可是也不可能啊,再说死锁和这些有什么鸡毛的关系,看来要好好解决下了。

问题分析

mysql报错:Deadlock found when trying to get lock; try restarting transaction的解决方法(mysql 报错)

我的分析是:由于现在处理的是正式服的数据,而正式服还有许多用户在操作,应该是在用户查询,或者是其他操作的时候,和我这边的数据更新产生了死锁(首先说明使用的是:InnoDB存储引擎。由于用户那边的查询或者其他操作锁定了我需要的资源,而我这边更新也锁定了用户操作的一部分资源,两边都等着对方释放资源,从而导致死锁)。

解决方法

知道错误code之后,先来查看mysql的说明,关于上面的 Error: SQLSTATE: ,参见:Server Error Codes and Messages

上面有两句:

这两句也就道出了处理死锁的方法了,我就是在死锁错误发生的时候,使用定时器再重新做一次更新操作,这样就避免了上面出现的问题。

另外,参考了stack overflow上面一个回答:

mysql中格式化数字详解 最近因为工作的需求,需要对mysql中数字进行格式化,但发现网上的资料较少,索性自己总结一下,方便自己也帮助有需要的朋友们,下面话不多说,来

Mysql事务操作失败如何解决 Mysql事务操作失败如何解决事务的原子性:事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做。要实现事务的原子性,单单靠一

Windows下mysql5.7.安装配置教程 本文为大家分享了Windows下mysql5.7.安装配置教程,供大家参考,具体内容如下准备:操作系统:win7下位的zip版本的MySQL,路径:

本文链接地址:https://www.jiuchutong.com/biancheng/349050.html 转载请保留说明!

上一篇:阿里云Linux CentOS 7.2下自建MySQL的root密码忘记的解决方法(阿里云linux 服务器 字符集)

下一篇:mysql中格式化数字详解(mysql格式化数值)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络