mysql kill 指定用户的连接
昨天有个需求,需要kill掉aa用户建立的连接。第一个感觉是用老土的mysqladmin+grep完成:
?
for id in `mysqladmin -uroot processlist | grep "aa" | awk '{print $2}' `doecho $idmysqladmin -uroot kill $idsleep 1done?
这样很容易kill掉原本不需要kill的连接,比如某个库名叫aa。可以改用下面的方式:
?
mysql -uroot -e "select concat('kill ',id,';select sleep(1);') from information_schema.processlist where user in ('aa') into outfile '/tmp/killaa.txt'"mysql -uroot -e "source /tmp/killaa.txt"
?这样就不会误操作了。
?
ps:这里的sleep 1是苏普同学提醒的,防止kill过快影响到业务。
?