清除不断增长的mysql慢查询sql的shell脚本

发布时间:2020-04-19编辑:脚本学堂
本文分享一个shell脚本,用于清除mysql中不断增长的慢查询sql语句,有需要的朋友参考下。

我们的初级dba误删index,mysql中全是10S以上的慢sql,mysql服务被hang住了,而且慢sql不断在增加中,手动在mysql界面kill的话,是不现实的。
于是有了以下的shell脚本,用来清除不断增长的mysql慢查询sql语句。

shell文件内容:
 

复制代码 代码示例:

#It is used to kill processlist of mysql sleep
#!/bin/sh
while :
do
  n=`mysqladmin processlist -uadmin -pxxxxx|grep -i sleep |wc -l`
  date=`date +%Y%m%d[%H:%M:%S]`
  echo $n

  if [ "$n" -gt 10 ]
  then
  for i in `mysqladmin processlist -uadmin -pxxxxxx|grep -i sleep |awk '{print $2}'`
  do
     mysqladmin -uadmin -pxxxxxx kill $i
  done
  echo "sleep is too many I killed it " >> /tmp/sleep.log
  echo "$date : $n" >> /tmp/sleep.log
  fi
  sleep 1
done

清除完以后,建议抓紧为表加上合适的索引。