从
Linux命令行
for PROC_TO_KILL in `mysql -h... -u... -p... -A --skip-column-names -e"SHOW PROCESSLIST" | grep -v "system user" | awk '{print $1}'` ; do mysql -h... -u... -p... -A --skip-column-names -e"KILL QUERY ${PROC_TO_KILL}" ; done
您可以更改for循环标头中的grep选项,以在查询中查找特定用户或特定字符串.
如果你有MySQL 5.1,其中进程列表在INFORMATION_SCHEMA中,你可以这样做从mysql客户端批量生成KILL QUERY命令:
SELECT GROUP_CONCAT(CONCAT('KILL QUERY ',id,';') SEPARATOR ' ') KillQuery
FROM information_schema.processlist WHERE user<>'system user'\G
您可以对INFO字段执行WHERE子句以查找特定查询,针对长时间运行的查询执行TIME字段,或针对特定数据库执行DB字段.