一尘不染

修复“超过锁定等待超时;尝试重新启动事务”为“卡住”的Mysql表?

mysql

从脚本中,我将这样的查询发送了数千次到本地数据库:

update some_table set some_column = some_value

我忘了添加where部分,因此同一列为表中的所有行设置了相同的值,并且完成了数千次,并且对该列建立了索引,因此相应的索引可能更新了太多次。

我注意到出了点问题,因为花了太长时间,所以我杀死了脚本。从那以后,我什至重新启动了计算机,但表中有些东西卡住了,因为简单的查询需要很长时间才能运行,并且当我尝试删除相关索引时,它失败并显示以下消息:

Lock wait timeout exceeded; try restarting transaction

这是一个innodb表,因此卡住的事务可能是隐式的。如何修复此表并从中删除卡住的事务?


阅读 536

收藏
2020-05-17

共1个答案

一尘不染

我通过删除表并从备份中恢复来解决了这个问题。

2020-05-17