当我发出SHOW PROCESSLIST查询时,在info列中只返回正在运行的SQL查询的前100个字符。
是否可以更改Mysql配置或发出不同类型的请求以查看完整查询(我正在查看的查询超过100个字符)
答案 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;