如何查看SHOW PROCESSLIST中的完整查询

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

是否可以更改Mysqlconfiguration或发出不同types的请求来查看完整的查询(我正在查看的查询超过100个字符)

SHOW FULL PROCESSLIST 

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

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

显示进程列表从另一个表中获取信息。 这里是你如何可以拉动数据并查看包含整个查询的“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' | 

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

从MySQL SHOW FULL PROCESSLIST文档引用:

如果你有PROCESS权限,你可以看到所有的线程。

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

这个解决scheme为我工作:

  • 打开terminal并login到mysql服务器
  • 打开新的terminal并重新启动mysqld服务(不要closures第一个terminal)
  • 在第一个terminal运行“从站”
  • 在第一台terminal上运行“从站启动”
  • 你会看到奴隶/主人将开始工作正常,没有错误