mysql 自動殺死慢查詢

mysql慢查詢一般會鎖死服務器,從而致使服務器負載增長,如下腳本能夠殺死查詢超過10秒的慢查詢mysql

DB_HOST=」localhost」
DB_PORT=3306
DB_USER=」test」
DB_PASS=」test」
maxtime=10
sql=」SHOW PROCESSLIST」
sss=$(/usr/local/mysql/bin/mysqladmin processlist  -u$DB_USER  -h$DB_HOST -p$DB
PASS|sed -e 「s/\s//g」|awk -F’|’ ‘{print $2,$6,$7,$9}’|awk ‘{if($3>’」$maxtime」‘
& $2==」Query」){print $1}}’)
for pid in $(echo 「$sss」); do
/usr/local/mysql/bin/mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS -e 「kill
$pid」
done
echo 「$sss」
date

DB_HOST=」localhost」DB_PORT=3306DB_USER=」root」DB_PASS=」13823388967″maxtime=10sql=」SHOW PROCESSLIST」sss=$(/usr/local/mysql/bin/mysqladmin processlist  -u$DB_USER  -h$DB_HOST -p$DBPASS|sed -e 「s/\s//g」|awk -F’|’ ‘{print $2,$6,$7,$9}’|awk ‘{if($3>’」$maxtime」‘& $2==」Query」){print $1}}’)for pid in $(echo 「$sss」); do/usr/local/mysql/bin/mysql -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS -e 「kill$pid」doneecho 「$sss」datesql

最後加上定時運行: crontab -e
*/1 * * * * /root/killslowquery.sh服務器

相關文章
相關標籤/搜索