轉載(https://www.cnblogs.com/bianxj/articles/9605067.html)? ? ? ? ? ? ? ? ? ?
?批量 Kill ?mysql processlist 進程
? ? ? ? ? 如果大批量的操作能夠通過一系列的select 語句產(chǎn)生,那么理論上就能對這些結果批量處理。
? ? ? ? ? 但是mysql并沒有提供eval這樣的對結果集進行分析操作的功能。索引只能將select結果保存到臨時文件中,然后再執(zhí)行臨時文件中的指令。
具體過程如下
1、通過information_schema.processlist表中的連接信息生成需要處理掉的MySQL連接的語句臨時文件,然后執(zhí)行臨時文件中生成的指令
mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root'; +------------------------+ | concat('KILL ',id,';') +------------------------+ | KILL 3101; | KILL 2946; +------------------------+ 2 rows in set (0.00 sec) mysql>select concat('KILL ',id,';') from information_schema.processlist where user='root' into outfile '/tmp/a.txt'; Query OK, 2 rows affected (0.00 sec) mysql>source /tmp/a.txt; Query OK, 0 rows affected (0.00 sec)
?
2、殺掉當前所有的MySQL連接
?
mysqladmin -uroot -p processlist|awk -F "|" '{print $2}'|xargs -n 1 mysqladmin -uroot -p kill
? ? ? ? ??
? ? ? 殺掉指定用戶運行的連接,這里為sa
? ?
mysqladmin -uroot -p processlist|awk -F "|" '{if($3 == "sa")print $2}'|xargs -n 1 mysqladmin -uroot -p kill
?
??? 3、通過shell腳本實現(xiàn)
#殺掉鎖定的MySQL連接 for id in `mysqladmin processlist|grep -i locked|awk '{print $1}'` do mysqladmin kill ${id} done
本文摘自 :https://www.cnblogs.com/