2008-12-02 29 views
13

在MySQL 5中有没有办法只显示当前用户的进程(查询)?MySQL - 如何仅显示当前用户进程的PROCESSLIST?

用户拥有PROCESS权限,因此SHOW PROCESSLIST显示所有用户的运行进程。根据文档,SHOW PROCESSLIST不允许任何种类的WHERE语法,我也没有设法将它变成子查询。

当然,我可以简单地发送查询,例如,在一个PHP脚本中,并在循环中查看结果,丢弃所有不属于我的内容,但效率相当低。更改用户权限并不可行。

还有其他方法吗?提前致谢。

回答

21

如果您使用MySQL 5.1.7或更新版本,则可以使用INFORMATION_SCHEMA中的PROCESSLIST表。因此,您可以使用普通的SELECT查询来查询它,并在WHERE子句中应用过滤条件。

此功能在MySQL 5.0及之前版本中未实现。

+0

正是我在找的,谢谢。 – Piskvor 2008-12-02 16:16:46

3

如果用户没有PROCESS,那么SHOW PROCESSLIST将只显示他们自己的线程。

相关问题