视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Mysql出现“Lockwaittimeoutexceeded;tryrestartingtrans
2020-11-09 15:16:07 责编:小采
文档


今天用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”错误。

网上百度了下,说是可以通过改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)等更改数据库内容命令进行的自我保护,同一时刻只允许一个窗口对数据库进行以上更改操作。

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




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

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

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

下载本文
显示全文
专题