• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Mysql出现“ Lock wait timeout exceeded; try restarting trans

mysql 搞代码 4年前 (2022-01-09) 21次浏览 已收录 0个评论

今天用django写一个小程序,结果调用数据库的时候在执行update命令时,一直出现“ Lock wait timeout exceeded; try restarting transaction”错误。 网上百度了下,说是可以通过改mysql的配置文件/ect/my.cnf中的 innodb_lock_wait_timeout变量,将它的提高

今天用django写一个小程序,结果调用数据库的时候在执行update命令时,一直出现“ Lock wait timeout exceeded; try restarting transaction”错误。

网上百度了来源gaodai#ma#com搞@代~码$网下,说是可以通过改mysql的配置文件/ect/my.cnf中的innodb_lock_wait_timeout变量,将它的值提高到500,即innodb_lock_wait_timeout=500.但我改了之后,没有解决。

又百度之,也没找到能够解决的方法。当然,这很可能是因为我没搜到好帖子,总之。。。我纠结了几个小时这个问题,不小心机器重启了。。之后。。我再次执行,居然可以。。。

首先声明我是数据库小白,只会常用命令操作,对数据库只懂使用,而且使用的很浅,对数据库的理解更是不深刻,所以我可能说不到点儿上,无法针对你的环境解决这个问题。那就在百度谷歌下,肯定可以的。加油,不过还是要恭喜你,得到了博主我在远方深情且饱含热泪的祝福。不要给我差评,不要骂我,乖,因为我不会开评论的

开始说正题:

我当时出问题的环境:centos,打开了一个mysql命令行、一个使用数据库的程序在运行(其实就是我在对数据库操作的project)、一个python shell(在python里面我也在使用数据库)。

现在看这三个环境,你一定以为我疯了,是的,没错!你没错!!!我现在也这么感觉的。当时的我肯定是被驴蹬了,弱爆了

其实,当时,我自作聪明地想的是:在python shell里面试一下我写的程序,在mysql命令行试一下我的mysql语句,再把都通过的程序写到我的project中,这样程序就没错了呀。。尼玛,多么严谨的写代码步骤啊!结果就这样给自己挖了一个硕大的坑,在坑里扑腾了半天。

以上除了粉红底色的都可以不看,博主只是无法控制要疯的节奏,在吐槽自己的智商。。下面开始说为什么会出现这个该死的错误。

没错,你真的没有看错!那就是:只留一个可以对数据库有操作的shell或程序或。。其他的都关掉、关掉!

如果还是不可以,那我建议你,保存你的程序,重启下。

如果真的你这么做了之后,解决了问题,那你一定会怀着对博主感谢的态度,继续看为什么会这样,这尼玛到底是为什么!

其实,是mysql为了对数据库的插入(insert)、更新(update)、删除(delete)等更改数据库内容命令进行的自我保护,同一时刻只允许一个窗口对数据库进行以上更改操作。

官方点儿:就是所谓的数据库死锁。




具体,想了解数据库死锁、想更加深入对这个问题究其根本的。博主我只能为你这种探索精神点个赞,那你就继续百度谷歌啦~小白博主我只能送你到这儿了,我们白了白。

如果你想无私的跟我分享,可以私信我,因为我关了评论喔~如果你想骂我这狗屁方法不管用,那还是不要了吧

精分(其实是被这个问题逼疯的)博主,求大家放过。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Mysql出现“ Lock wait timeout exceeded; try restarting trans

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址