如何停止正在執行的 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