mysql command为sleep时项目可以连接_Mysql中Sleep进程连接数过多问题解决
解決方法
批量刪除 sleep 進程狀態(tài)的連接數(shù)。
1)、一種直接在MySQL命令控制臺操作:
mysql> show processlist;
mysql> SELECT concat('KILL ',id,';') FROM information_schema.processlist WHERE user='user1';
mysql> select concat('KILL ',id,';') from information_schema.processlist where user='user1' into outfile '/tmp/a.txt';
mysql> source /tmp/a.txt;
其中上面user1用戶是“show processlist;” 命令下,User列對應(yīng)最多的Sleep進程連接狀態(tài)的用戶。
注:如上面導(dǎo)出為指定文件路徑報“ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement”錯誤。
是由于MySQL在文件的導(dǎo)入、導(dǎo)出有個默認的文件路徑。通過“show variables like '%secure%';”命令查看默認導(dǎo)入、導(dǎo)出文件路徑。
從上面可看出默認路徑為“/var/lib/mysql-files/”;所以改下導(dǎo)出文件路徑:
然后在執(zhí)行“source /var/lib/mysql-files/a.txt;”命令,接下來是出現(xiàn)一堆“Query OK, 0 rows affected (0.00 sec)”,執(zhí)行成功。
2)、另一種是寫Shell腳步方法,配合設(shè)置cron定時任務(wù)
#!/bin/sh
while :
do
sleep_num=`mysqladmin processlist -u user -ppassword -h 10.10.10.100 | grep -ie sleep |wc -l`
date=`date +%Y%m%d\[%H:%M:%S]`
echo $sleep_num
if [ "$sleep_num" -gt 100 ];then
for i in `mysqladmin processlist -u user -ppassword -h 10.10.10.100 | grep -ie sleep | awk '{print $2}'`
do
mysqladmin -u user -ppassword -h 10.10.10.100 kill $i
done
echo "sleep is too many more than 100, killed it " >> /tmp/sleep.log
echo "$date : $sleep_num" >> /tmp/sleep.log
fi
sleep 1
done
接下來設(shè)置個cron定時任務(wù),設(shè)置多長時間跑一次。
總結(jié)
以上是生活随笔為你收集整理的mysql command为sleep时项目可以连接_Mysql中Sleep进程连接数过多问题解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 南京文件柜厂推荐南京文件柜厂厂家介绍
- 下一篇: mysql 5.7 双主配置_MySQL