如何查看SHOW PROCESSLIST的完整查询

时间:2010-09-03 18:47:35

标签: mysql

当我发出SHOW PROCESSLIST查询时,在info列中只返回正在运行的SQL查询的前100个字符。

是否可以更改Mysql配置或发出不同类型的请求以查看完整查询(我正在查看的查询超过100个字符)

5 个答案:

答案 0 :(得分:410)

SHOW FULL PROCESSLIST

如果您不使用FULL"only the first 100 characters of each statement are shown in the Info field"

使用phpMyAdmin时,您还应单击“全文”选项(结果表左上角的“←T→”)以查看未截断的结果。

答案 1 :(得分:63)

显示Processlist从另一个表中获取信息。以下是如何提取数据并查看包含整个查询的“INFO”列:

query

您可以根据自己的要求添加任何条件或忽略。

查询的输出结果为:

select * from INFORMATION_SCHEMA.PROCESSLIST where db = 'somedb';

答案 2 :(得分:11)

我刚刚在MySQL documentation中读到SHOW FULL PROCESSLIST默认情况下只会列出当前用户连接中的主题

引用MySQL SHOW FULL PROCESSLIST文档:

  

如果您拥有PROCESS权限,则可以查看所有主题。

因此,您可以在Process_priv表格中启用mysql.user列。记得之后执行FLUSH PRIVILEGES:)

答案 3 :(得分:7)

show [full] processlist唯一的坏处是您无法过滤输出结果。另一方面,发布SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST的开放可能性,从输出中删除您不希望看到的任何内容:

SELECT * from INFORMATION_SCHEMA.PROCESSLIST
WHERE DB = 'somedatabase'
AND COMMAND <> 'Sleep'
AND HOST NOT LIKE '10.164.25.133%' \G

答案 4 :(得分:5)

查看SHOW PROCESSLIST的完整查询:

SHOW FULL PROCESSLIST;

 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;