Mysql
殺死所有查詢 - MySQL
有時在 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 欄位。