前提:监控报警某个数据库有大量的慢查询,原因是开发人员提交代码忘记sql忘记加上正确的时间过滤,引起大量慢查询,而后面查询数据库都需要费大量的时间才能返回结果,现需要把慢查询批量杀死。
1、使用 show full processlist 查看完整状态
【将查看到的状态保存到本地文件】
mysql -h'127.0.0.1' -u'root' -p'xxx' -P 3306 -e "show full processlist;" | grep "xxx" | awk '{print $1}' >> mysql_slow.txt
2、可以使用 kill 进程号 杀死进程【有欲慢查询太多,此处使用脚本直接杀死进程】
[root@note1 ~]# cat kill.sh
#!/bin/bash
for id in `cat mysql_slow.txt`
do
mysql -h'127.0.0.1' -u'root' -p'xxx' -P 3306 -e "KILL QUERY "$id";"
done
3、再次查看进程 show full processlist