如何停止正在运行的 MySQL 查询?
在停止正在运行的 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 中出现了“正在尝试重新连接…”的消息。并且它还显示当前数据库为“none”。一段时间后,与数据库的连接恢复。
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP