mysql - 即使我没有使用事务,也会得到 "Lock wait timeout exceeded; try restarting transaction"

标签 mysql sql

我正在运行以下 MySQL UPDATE 语句:

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

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

该表有 406,733 行。

最佳答案

如何强制解锁 MySQL 中的锁定表:

像这样破坏锁可能会导致atomicity在数据库中不会对导致锁定的 sql 语句强制执行。

这太骇人听闻了,正确的解决方案是修复导致锁定的应用程序。然而,当美元处于危险之中时,快速的一脚会让事情再次发生。

1) 进入 MySQL

mysql -u your_user -p

2)我们来看看锁定表的列表

mysql> show open tables where in_use>0;

3) 让我们看看当前进程的列表,其中一个正在锁定您的表

mysql> show processlist;

4) 杀死其中一个进程

mysql> kill <put_process_id_here>;

关于mysql - 即使我没有使用事务,也会得到 "Lock wait timeout exceeded; try restarting transaction",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5836623/

相关文章:

javascript - 使用 MySQL 和 Python 通过 webapp(PHP,javascript)控制串口

mysql - Mysql:将字符集更改为UTF-8

c# - 使用 C# 在 SQL Server 数据库中存储敏感数据

python - 如何计算分组的 Spark 数据框中的 bool 值

sql - 数据库编程概念

sql - Laravel 5.3 DB 选择不同的数据库

MySQL将逗号分隔的字符串拆分为临时表

mysql - 查询需要 0.0005 秒,但是当用作子查询时,它将选择增加到 2.+

如果子项不存在,Mysql 将行显示为空

sql - t-SQL 查找每个组的前 10 条记录