批量 Kill MySQL 连接

基础知识:

1
2
3
4
5
6
7
-- 查看当前连接
show processlist;
-- 查看当前连接完整内容
show full processlist;
-- Kill 一个指定连接
-- kill {processlist_id}
kill 1234567;

当需要批量 Kill 多个连接时,可以通过查询 information_schema.processlist 表进行拼装:

1
select concat('KILL ',id,';') from information_schema.processlist where user='db_user';

同样可以利用这个表对当前连接进行相应的条件的查找,表结构如下:

1
2
3
4
5
6
7
8
9
10
11
show create table information_schema.processlist;
CREATE TEMPORARY TABLE `PROCESSLIST` (
`ID` bigint(21) unsigned NOT NULL DEFAULT '0',
`USER` varchar(16) NOT NULL DEFAULT '',
`HOST` varchar(64) NOT NULL DEFAULT '',
`DB` varchar(64) DEFAULT NULL,
`COMMAND` varchar(16) NOT NULL DEFAULT '',
`TIME` int(7) NOT NULL DEFAULT '0',
`STATE` varchar(64) DEFAULT NULL,
`INFO` longtext
) ENGINE=MyISAM DEFAULT CHARSET=utf8