如何停止运行 MySQL 查询?

mysqlmysqli database

在停止正在运行的 MySQL 查询之前,首先我们需要借助 show 命令查看有多少进程正在运行。

查询如下 −

mysql> show processlist;

执行上述查询后,我们将获得带有一些 id 的输出。如下所示 −

+----+-----------------+-----------------+----------+---------+-------+------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------------+-----------------+----------+---------+-------+------------------------+------------------+
| 4 | event_scheduler | localhost | NULL | Daemon | 71034 | Waiting on empty queue |
NULL |
| 8 | Manish | localhost:53496 | business | Query | 0 | starting |show processlist|
+----+-----------------+-----------------+----------+---------+-------+------------------------+------------------+
2 rows in set (0.00 sec)

从上面的输出可以看出,当前正在使用的数据库是‘business’。其 ID 为 8。要停止查询,可以使用命令调用和进程列表中的给定 ID。其语法如下 −

call mysql.rds_kill(valueOfGivenIdInProcesslist);

现在,将上述语法应用于查询,并将 valueOfGivenIdInProcesslist 设置为 8。如下所示 −

mysql> CALL mysql.rds_kill(8);

执行上述查询后,获得以下输出 −

ERROR 2013 (HY000): Lost connection to MySQL server during query

这是因为上述查询停止运行。 use 命令用于检查它是否已停止。 语法如下 −

use yourDatabaseName;

上述语法应用于系统中的 mydatabase 名称 ‘business’。 查询如下 −

mysql> use business;

执行上述查询后,获得以下输出 −

No connection. Trying to reconnect...
Connection id: 10
Current database: *** NONE ***



Database changed
mysql>

因此,很明显查询已停止,因为 MySQL 中出现消息"正在尝试重新连接……"。并且还显示当前数据库为"无"。一段时间后,与数据库的连接恢复。


相关文章