当前位置: 移动技术网 > IT编程>数据库>Mysql > 批量杀死MySQL连接的四种方法详解

批量杀死MySQL连接的四种方法详解

2017年12月12日  | 移动技术网IT编程  | 我要评论

绿豆沙色,执行力心得,非诚勿扰13号李璐

方法一
  通过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更多用法可参考:

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网