Mysql

殺死所有查詢 - MySQL

  • April 22, 2021

有時在 SNAFU 期間,我必須跑kill query xxxxxxx二十或三十次。kill all我缺少任何命令嗎?

因為我不喜歡打字。

從 Linux 命令行

for PROC_TO_KILL in `mysql -h... -u... -p... -A --skip-column-names -e"SHOW PROCESSLIST" | grep -v "system user" | awk '{print $1}'` ; do mysql -h... -u... -p... -A --skip-column-names -e"KILL QUERY ${PROC_TO_KILL}" ; done

您可以更改 for 循環標頭中的 grep 選項以在查詢中定位特定使用者或特定字元串。

如果您有 MySQL 5.1,其中程序列表位於 INFORMATION_SCHEMA 中,則可以執行此操作以從 mysql 客戶端中批量生成 KILL QUERY 命令:

SELECT GROUP_CONCAT(CONCAT('KILL QUERY ',id,';') SEPARATOR ' ') KillQuery
FROM information_schema.processlist WHERE user<>'system user'\G

您可以針對 INFO 欄位執行 WHERE 子句以查找特定查詢,針對長時間執行的查詢執行 TIME 欄位,或針對特定數據庫執行 DB 欄位。

引用自:https://dba.stackexchange.com/questions/2634