6

查询已锁定 MySQL 中的表。如何杀死正在运行的查询会话来解锁表?

我不知道在 MySQL 中查看活动会话/进程。我怎么能通过SSH呢?

4

3 回答 3

12

进入 PuTTY,然后登录 MySQL。在 MySQL 中运行以下命令:

show processlist;

这将显示所有正在运行的进程的列表。您可能会找到正在锁定您的表的查询,因为它可能是运行时间最长的查询,并且有许多其他查询在等待锁定释放。记下此查询的进程 ID。

然后运行:

kill [PROCESSID];

这将杀死该过程。当然,您需要以有权停止已启动查询的用户身份执行此操作(因此请使用同一用户,或者root如果您必须这样做)。

于 2012-07-17T13:53:41.467 回答
2

使用 MySQL 控制台或其他工具运行查询SHOW PROCESSLIST以查看活动查询。

并运行查询kill 123以终止 id 为 123 的查询/连接。

于 2012-07-17T13:56:53.143 回答
0

使用此命令更易于阅读:

    mysql> show processlist\G

然后正如上面所说的,使用命令:

    kill PROCESSID;

示例是:

    kill 1234;

其中 1234 是显示为使用最多资源/时间的 ID。不过要小心,因为它可能导致数据损坏。

于 2013-11-04T22:34:08.277 回答