版权声明:本文为博主原创文章,未经博主允许不得转载,转载附上原文链接即可。 https://blog.csdn.net/GX_1_11_real/article/details/88700161
前言
下面分享的是当mysql慢查询或死锁时,临时解决问题的用于批量删除Sleep进程或死锁进程的脚本,可根据需求更改变量。
cat kill_slow.sh
#!/bin/bash
source /root/.bash_profile
>kill_slow.sql
DBUSER=root
DBPASSWORD=@#$DSfw146y5s
SOCKET=$(grep socket /etc/my.cnf | awk -F= '{print $2}' | sed 's/ //g' | uniq)
#sleep进程
sl=Sleep
#慢查询进程
#qu=Query
#死锁进程
#lock=Locked
mysql -u$DBUSER -p$DBPASSWORD -S$SOCKET -e "show processlist" | grep -i $sl > slow_process.log
for i in `cat slow_process.log | awk '{print $1}'`
do
echo "kill $i;" > kill_slow.sql
done
#不建议直接使用下列命令,请确认kill_slow.sql中筛选出的进程后,再执行
# mysql -u$DBUSER -p$DBPASSWORD -S$SOCKET -e "source kill_slow.sql"
#或确认后进入mysql中执行:source kill_slow.sql