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

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


当前回答

SHOW FULL PROCESSLIST

这显示了包含更多信息的完整流程列表。

其他回答

SHOW FULL PROCESSLIST

这显示了包含更多信息的完整流程列表。

SHOW FULL PROCESSLIST

如果不使用FULL,“每条语句的前100个字符只显示在Info字段中”。

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

我刚刚在MySQL文档中读到,默认情况下SHOW FULL PROCESSLIST只列出当前用户连接的线程。

引用自MySQL SHOW FULL PROCESSLIST文档:

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

所以你可以在你的mysql中启用Process_priv列。用户表。记得在之后执行FLUSH PRIVILEGES:)

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

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

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

查询的输出结果如下:

+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+
| ID    | USER | HOST            | DB     | COMMAND | TIME | STATE     | INFO                                                     |
+-------+------+-----------------+--------+---------+------+-----------+----------------------------------------------------------+
|     5 | ssss | localhost:41060 | somedb | Sleep   |    3 |           | NULL                                                     |
| 58169 | root | localhost       | somedb | Query   |    0 | executing | select * from sometable where tblColumnName = 'someName' |

查看SHOW PROCESSLIST的完整查询:

SHOW FULL PROCESSLIST;

Or

 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;