应为某种原因造成数据库sql堵塞,需要kill掉进程,但是由于线程有可能开出56百个线程,这中情况下只能批量杀了。
One:
[root@WLYY-NEWBBS-P-db-09 newdate]# mysql -uroot -p -S /usr/local/mysql55/sock/mysql.sock -e ‘show processlist’ >> allDate
Enter password:
[root@WLYY-NEWBBS-P-db-09 newdate]#
将show processlist的数据信息重定向到指定的文件中。
Two:
[root@WLYY-NEWBBS-P-db-09 newdate]# cat allDate |grep -v Id |grep -i mysync | awk ‘{print $1}’ > newfile
[root@WLYY-NEWBBS-P-db-09 newdate]#
[root@WLYY-NEWBBS-P-db-09 newdate]#
[root@WLYY-NEWBBS-P-db-09 newdate]#
[root@WLYY-NEWBBS-P-db-09 newdate]# cat newfile
8
将需要处理的mysync这个用户的进程号写在指定的文件中newfile
Tree:
文本处理,符合sql可以处理的格式
[root@WLYY-NEWBBS-P-db-09 newdate]# cat newfile
8
22
4345
324
[root@WLYY-NEWBBS-P-db-09 newdate]# vim newfile
使用vim 编辑器全局变量替换:
:%s/^/kill /g
:%s/$/;/g
最终的样式:
[root@WLYY-NEWBBS-P-db-09 newdate]# cat newfile
kill 8;
kill 22;
kill 4345;
kill 324;
four:
sql的执行
进入mysql管理页面,执行source newfile
执行完毕查看show processlist的线程数。