解锁“卡住”的 MySQL 表:排除“锁定等待超时超出”
当遇到“锁定等待超时超出;尝试重新启动”时在 MySQL 中使用 InnoDB 表时出现“事务”错误,很可能事务已被卡住。以下是修复表并解决卡住事务的方法:
1.识别卡住的事务:
在 MySQL 命令行界面或通过 phpMyAdmin 运行以下命令:
SHOW PROCESSLIST;
这将显示正在运行的线程列表。查找执行时间较长或处于“睡眠”状态的线程。相应的线程ID将显示在“Id”栏中。
2.终止卡住的线程:
识别出卡住的线程后,在命令行界面中使用以下命令终止它:
KILL <thread_id>;
替换
3.重新启动事务(可选):
如果事务仍处于活动状态,请重新启动它以释放它可能持有的任何锁定。您可以通过运行以下命令来完成此操作:
START TRANSACTION; COMMIT;
4.删除索引(如果适用):
如果您之前尝试删除受影响表上的索引但由于锁定而失败,请在终止卡住的线程并重新启动事务后再次尝试删除它.
ALTER TABLE <table_name> DROP INDEX <index_name>;
按照以下步骤,您可以解锁卡住的表并解决“超出锁定等待超时”错误。请记住定期检查正在运行的线程,以识别并终止任何潜在的卡住事务,以防止将来出现类似问题。
以上是如何修复 MySQL 中的'锁定等待超时超出”错误:解锁卡住的表的详细内容。更多信息请关注PHP中文网其他相关文章!