我正在尝试从一个MySQL 5.0.45数据库中删除多行记录:
delete from bundle_inclusions;
客户端工作一段时间后返回错误:
Lock wait timeout exceeded; try restarting transaction
有可能存在一些未提交的事务锁定了这个表,但我需要让这个进程优先于任何这样的锁。在 MySQL 中如何打破锁定?
我同意Erik的看法,TRUNCATE TABLE是最好的方式。但如果由于某种原因你不能使用它(例如,如果你不想真正删除表中的每一行),可以尝试以下选项:
我相信还有许多其他可能性;希望其中之一能够帮到你。
Linux: 在mysql配置文件 (/etc/my.cnf 或 /etc/mysql/my.cnf) 中,插入/编辑以下行
innodb_lock_wait_timeout = 50
将值增加到足够大的程度(以秒为单位),重新启动数据库,进行更改。然后撤销更改并再次重启。
我曾经遇到过相同的问题,一笔没有结束的失控交易。我重启了mysqld进程。你不需要截断表格。这会导致来自该失控交易的数据丢失。