当前位置: 首页 > 面试题库 >

超出了“等待等待超时”;尝试重新启动事务''。即使我没有使用事务

松雅健
2023-03-14
问题内容

我正在运行以下MySQLUPDATE语句:

mysql> update customer set account_import_id = 1;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

我没有使用交易,所以为什么会出现此错误?我什至尝试重新启动MySQL服务器,但没有帮助。

该表有406,733行。


问题答案:

您正在使用交易;autocommit不会禁用事务,它只是使它们在语句末尾自动提交。

发生的事情是,某个其他线程在某个记录上保持记录锁定(您正在更新表中的每个记录!)的时间太长,导致您的线程超时。

您可以通过发出

SHOW ENGINE INNODB STATUS

事件发生后(在sql编辑器中)。理想情况下,请在安静的测试机上执行此操作。



 类似资料:
  • 问题内容: 我正在运行以下MySQL 语句: 我没有使用交易,所以为什么会出现此错误?我什至尝试重新启动MySQL服务器,但没有帮助。 该表有406,733行。 问题答案: 您正在使用交易;autocommit不会禁用事务,它只是使它们在语句末尾自动提交。 发生的情况是,某个其他线程在某个记录上保持记录锁定(您正在更新表中的每个记录!)的时间太长,导致您的线程超时。 您可以通过以下方式查看事件的更

  • 问题内容: 从脚本中,我将这样的查询发送了数千次到本地数据库: 我忘了添加where部分,因此同一列为表中的所有行设置了相同的值,并且完成了数千次,并且对该列建立了索引,因此相应的索引可能更新了太多次。 我注意到出了点问题,因为花了太长时间,所以我杀死了脚本。从那以后,我什至重新启动了计算机,但表中有些东西卡住了,因为简单的查询需要很长时间才能运行,并且当我尝试删除相关索引时,它失败并显示以下消息

  • 问题内容: 我正在使用Ubuntu 16.04 问题答案: 我遇到了这个问题,终于找到了答案。我一直在使用Marionette驱动程序,该驱动程序不再适用于FF版本53和Selenium 3.5或更高版本。该GeckoDriver文档显示系统属性应该如何引用。 我从以下位置更改了代码: 至: 现在我的本地Firefox运行正常。 希望这对其他人有帮助。

  • 问题内容: 在Bash脚本中,我想执行以下操作: 即,在后台启动两个应用程序,并给它们60秒以完成其工作。然后,如果他们没有在该时间间隔内完成,请杀死他们。 不幸的是,上述内容不起作用,因为它是可执行文件,而它是Shell命令。我尝试将其更改为: 但这仍然行不通,因为只能在同一外壳程序内启动的PID上进行调用。 有任何想法吗? 问题答案: 将PID写入文件并像这样启动应用程序: 这将创建另一个hi

  • 在Bash脚本中,我想做如下操作: 一、 例如,在后台启动两个应用程序,并给他们60秒时间完成工作。然后,如果他们没有在这段时间内完成,就杀了他们。 不幸的是,上面的方法行不通,因为< code>timeout是一个可执行文件,而< code>wait是一个shell命令。我试着把它改成: 但是这仍然不起作用,因为< code>wait只能在同一个shell中启动的PID上调用。 有什么想法吗?

  • 问题内容: 我有一个Ubuntu 13.10,并安装了Vagrant 1.5.4和VirtualBox 4.3.10r93012。我第一次在虚拟机上正确编写脚本时编写命令时会出现我的问题。但是在完成并再次编写命令后,就会出现问题: 有什么解决办法吗?谢谢。 问题答案: 我使用会增加时间。但是对我来说,这不是原因,尽管错误告诉您超时。 我使用vim打开了Vagrantfile,并添加了以下几行来打开