MySQL 里只查看指定用户的连接 / 线程
方式一:information_schema.PROCESSLIST
这是官方、可过滤、最灵活的方式:
SELECT *
FROM information_schema.PROCESSLIST
WHERE USER = 'your_user';
例如:
SELECT *
FROM information_schema.PROCESSLIST
WHERE USER = 'app_user';
也可以只看正在执行的 SQL:
SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO
FROM information_schema.PROCESSLIST
WHERE USER = 'app_user'
AND INFO IS NOT NULL;
方式二:模仿 SHOW FULL PROCESSLIST(带 SQL 内容)
SELECT *
FROM information_schema.PROCESSLIST
WHERE USER = 'app_user'
ORDER BY TIME DESC;
等价于 SHOW FULL PROCESSLIST,但支持 WHERE。
方式三:SHOW PROCESSLIST(不能直接过滤)
SHOW PROCESSLIST;
MySQL 不支持
SHOW PROCESSLIST WHERE USER='xxx'; -- 不行
所以必须用 information_schema。