批量kill mysql processlist 進程


                     批量 Kill  mysql processlist 進程

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

          但是mysql並沒有提供eval這樣的對結果集進行分析操作的功能。索引只能將select結果保存到臨時文件中,然后再執行臨時文件中的指令。

具體過程如下

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

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腳本實現

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

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM