批量殺逝世MySQL銜接的四種辦法詳解。本站提示廣大學習愛好者:(批量殺逝世MySQL銜接的四種辦法詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是批量殺逝世MySQL銜接的四種辦法詳解正文
辦法一
經由過程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)
辦法二
殺失落以後一切的MySQL銜接
mysqladmin -uroot -p processlist|awk -F "|" '{print $2}'|xargs -n 1 mysqladmin -uroot -p kill
殺失落指定用戶運轉的銜接,這裡為Mike
mysqladmin -uroot -p processlist|awk -F "|" '{if($3 == "Mike")print $2}'|xargs -n 1 mysqladmin -uroot -p kill
辦法三
經由過程SHEL劇本完成
#殺失落鎖定的MySQL銜接
for id in `mysqladmin processlist|grep -i locked|awk '{print $1}'`
do
mysqladmin kill ${id}
done
辦法四
經由過程Maatkit對象集中供給的mk-kill敕令停止
#殺失落跨越60秒的sql
mk-kill -busy-time 60 -kill
#假如你想先不殺,先看看有哪些sql運轉跨越60秒
mk-kill -busy-time 60 -print
#假如你想殺失落,同時輸入殺失落了哪些過程
mk-kill -busy-time 60 -print –kill
mk-kill更多用法可參考:
http://www.maatkit.org/doc/mk-kill.html