當(dāng)前位置:首頁 > IT技術(shù) > 數(shù)據(jù)庫 > 正文

批量刪mysql 進(jìn)程
2021-09-16 11:44:11

轉(zhuǎn)載(https://www.cnblogs.com/bianxj/articles/9605067.html)? ? ? ? ? ? ? ? ? ?

?批量 Kill ?mysql processlist 進(jìn)程

? ? ? ? ? 如果大批量的操作能夠通過一系列的select 語句產(chǎn)生,那么理論上就能對這些結(jié)果批量處理。

? ? ? ? ? 但是mysql并沒有提供eval這樣的對結(jié)果集進(jìn)行分析操作的功能。索引只能將select結(jié)果保存到臨時文件中,然后再執(zhí)行臨時文件中的指令。

具體過程如下

1、通過information_schema.processlist表中的連接信息生成需要處理掉的MySQL連接的語句臨時文件,然后執(zhí)行臨時文件中生成的指令

復(fù)制代碼
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)
復(fù)制代碼

?

2、殺掉當(dāng)前所有的MySQL連接

?

mysqladmin -uroot -p processlist|awk -F "|" '{print $2}'|xargs -n 1 mysqladmin -uroot -p kill   

? ? ? ? ??

? ? ? 殺掉指定用戶運(yùn)行的連接,這里為sa

? ?

mysqladmin -uroot -p processlist|awk -F "|" '{if($3 == "sa")print $2}'|xargs -n 1 mysqladmin -uroot -p kill

?

??? 3、通過shell腳本實(shí)現(xiàn)

#殺掉鎖定的MySQL連接
for id in `mysqladmin processlist|grep -i locked|awk '{print $1}'`
do
   mysqladmin kill ${id}
done

本文摘自 :https://www.cnblogs.com/

開通會員,享受整站包年服務(wù)立即開通 >