查询已锁定 MySQL 中的表。如何杀死正在运行的查询会话来解锁表?
我不知道在 MySQL 中查看活动会话/进程。我怎么能通过SSH呢?
进入 PuTTY,然后登录 MySQL。在 MySQL 中运行以下命令:
show processlist;
这将显示所有正在运行的进程的列表。您可能会找到正在锁定您的表的查询,因为它可能是运行时间最长的查询,并且有许多其他查询在等待锁定释放。记下此查询的进程 ID。
然后运行:
kill [PROCESSID];
这将杀死该过程。当然,您需要以有权停止已启动查询的用户身份执行此操作(因此请使用同一用户,或者root
如果您必须这样做)。
使用 MySQL 控制台或其他工具运行查询SHOW PROCESSLIST
以查看活动查询。
并运行查询kill 123
以终止 id 为 123 的查询/连接。
使用此命令更易于阅读:
mysql> show processlist\G
然后正如上面所说的,使用命令:
kill PROCESSID;
示例是:
kill 1234;
其中 1234 是显示为使用最多资源/时间的 ID。不过要小心,因为它可能导致数据损坏。