在 MySQL 中殺死一個程序

Preet Sanghavi 2023年1月30日 2022年5月13日
  1. 列出 MySQL 中執行的所有程序
  2. 使用 KILL 命令終止程序
在 MySQL 中殺死一個程序

在本教程中,我們將學習如何在 MySQL 中終止程序。

很多時候,特定的 MySQL 程序可能需要很長時間才能執行。

它可能會導致系統出現效能問題。隨著時間的推移,不同的執行緒和語句在系統中變得雜亂無章,從而妨礙了伺服器的整體功能。

為了解決這個問題並避免高資源使用,我們可以殺死不再需要執行的特定程序。

要殺死 MySQL 中的程序,我們必須在登入到你的 MySQL 帳戶後執行兩個簡單的步驟:

  • 列出在 MySQL 中執行的所有程序。
  • 使用 KILL 命令終止程序。

列出 MySQL 中執行的所有程序

在我們打算刪除或終止任何正在進行的程序之前,我們首先需要識別程序 id。一旦我們有了程序 id,我們就可以殺死或終止一個程序。

我們可以使用 show processlist 命令獲取 MySQL 中所有現有程序的列表。執行此命令後,我們將立即獲取登入使用者的正在進行的程序。

正在進行的過程的快照如下。

列出 mysql 中的所有程序

正如我們所看到的,每個程序都有一個程序 id,表示使用者名稱的 User,表示主機伺服器的 Host,表示資料庫的 db

Command 表示正在考慮的命令的型別,Time 表示查詢執行的時間,State 表示程序的狀態,Info 表示與程序相關的任何相關資訊。

使用 KILL 命令終止程序

一旦我們得到要被殺死的程序的 id,我們就可以使用 kill <id> 命令來終止程序。

讓我們的目標是殺死具有 id 編號 14 的程序。可以使用以下查詢來完成此任務。

KILL 14;

這將使 id 程序為 14,被殺死。

此外,如果我們希望終止與特定使用者關聯的所有程序,我們可以使用以下查詢執行此操作。

SELECT CONCAT('KILL ',id,';') FROM information_schema.processlist WHERE user='preet' INTO OUTFILE '/tmp/processes_text.txt';

在上面的查詢中,帶有執行緒和語句的新檔案的檔名為 processes_text。我們可以檢視此檔案以檢查我們是否要終止所有提到的程序。

一旦確定,我們就可以使用以下查詢。

source /tmp/processes_text.txt

因此,在 KILL 命令的幫助下,可以終止 MySQL 資料庫中的一個或多個程序。

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub