日期:2014-05-16  浏览次数:20735 次

mysql kill 指定用户的连接

昨天有个需求,需要kill掉aa用户建立的连接。第一个感觉是用老土的mysqladmin+grep完成:

?

for id in `mysqladmin -uroot processlist | grep "aa" | awk '{print $2}' `
do
echo $id
mysqladmin -uroot kill $id
sleep 1
done
?

这样很容易kill掉原本不需要kill的连接,比如某个库名叫aa。可以改用下面的方式:

?

mysql -uroot -e "select concat('kill ',id,';select sleep(1);') from information_schema.processli
st where user in ('aa') into outfile '/tmp/killaa.txt'"
mysql -uroot -e "source /tmp/killaa.txt"

?这样就不会误操作了。

?

ps:这里的sleep 1是苏普同学提醒的,防止kill过快影响到业务。

?