博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
批量 kill mysql 线程
阅读量:6252 次
发布时间:2019-06-22

本文共 2134 字,大约阅读时间需要 7 分钟。

时常有一些烂sql跑在数据库里,我们要进行kill,避免影响拖垮数据库。

 

mysql> show processlist;

+----+------+---------------------+--------------------+---------+------+----------+------------------+

| Id | User | Host | db | Command | Time | State | Info |
+----+------+---------------------+--------------------+---------+------+----------+------------------+
| 6 | root | 192.168.40.71:44018 | information_schema | Query | 0 | starting | show processlist |
+----+------+---------------------+--------------------+---------+------+----------+------------------+
1 row in set (0.00 sec)

mysql> select * from processlist;

+----+------+---------------------+--------------------+---------+------+-----------+---------------------------+
| ID | USER | HOST | DB | COMMAND | TIME | STATE | INFO |
+----+------+---------------------+--------------------+---------+------+-----------+---------------------------+
| 6 | root | 192.168.40.71:44018 | information_schema | Query | 0 | executing | select * from processlist |
+----+------+---------------------+--------------------+---------+------+-----------+---------------------------+
1 row in set (0.00 sec)

这两个命令本质是一样的。

所以只要找到你符合你条件的线程id就可以kill了。

 

mysql -uroot -S /tmp/mysql_20158.sock -sNe "select id from information_schema.processlist where COMMAND='Sleep' and TIME>60" | xargs -n 1 mysqladmin -uroot -S /tmp/mysql_20158.sock kill

或者生成kill 命令,再自己手动执行:

select concat('KILL ',id,';') from information_schema.processlist where COMMAND='Sleep' and TIME>60;

或者用工具mt-kill pt-kill

pt-kill --host=192.168.1.2 --user=root --password=000000 --port=3306 --busy-time 60 --match-command="query|Execute" --victim all --interval 1 --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log

pt-kill --host=192.168.1.2 --user=root --password=000000 --port=3306 --busy-time 60 --match-state="Locked|Sending data" --victim all --interval 1 --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log

pt-kill --host=192.168.1.2 --user=root --password=000000 --port=3306 --busy-time 60 --match-info="SELECT|DELETE" --victim all --interval 1 --kill --daemonize --pid=/tmp/ptkill.pid --print --log=/home/pt-kill.log

转载地址:http://inysa.baihongyu.com/

你可能感兴趣的文章
martian source packets(ll header)
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
VMware vSphere升级笔记
查看>>
sed 学习
查看>>
想要成功,请记住!
查看>>
解决Div自适应高度的方法(转)
查看>>
细数国外的你必须要知道的远程工作平台
查看>>
判断一个程序是c++编译还是c编译
查看>>
(20120722)(笔记001)android开发基础
查看>>
window.opener=null 不需确认就能关闭窗口
查看>>
Spring4-松耦合实例
查看>>
封装方法实现react更新元素示例
查看>>
windows 2003 IIS 配置支持 CGI
查看>>
mysql 多线程写入后查询丢失数据的一个bug
查看>>
SQLIOSim 模拟SQLServer的行为来测试IO性能
查看>>
更改activity组件切换的动画
查看>>
周鸿祎在360新员工入职培训上的讲话
查看>>
网页基础编程第十章
查看>>
centos7 命令行版本 安装 teamviewer
查看>>