phpmyadmin MySQL事件探查器-show profile中没有条目

5jdjgkvh  于 2022-11-09  发布在  PHP
关注(0)|答案(4)|浏览(144)

我正在使用MySQL探查器来帮助诊断我正在调查的一些MySQL问题。但是,当我发出show profiles命令时,我没有得到任何结果。
这是我使用它的方式:

set profiling=1 --Enable profiling

-- Run some selects / inserts etc
select count(*) from mytable
insert into mytable (mydata) values ('wibble')

show profiles

我希望show profiles命令能为我提供在启用概要分析后执行的选择等操作的概要数据(根据from this MySQL dev page信息),但是我得到的只是一个空的结果集。启用/禁用概要分析时我没有看到任何错误,尝试查看概要文件时也没有看到任何错误。
以下内容可能相关,也可能不相关:
1.这些命令是通过phpMyAdmin发出的
1.我正在运行MySQL 5.0.77

  1. select * from information_schema.profiling未返回任何结果
cgvd09ve

cgvd09ve1#

经过测试,此功能正常工作。

如果您可以使用TRANSACTION(取决于您的存储引擎?),则可以从PhpMyAdmin执行此操作。
试试看:

START TRANSACTION;

set profiling=1; --Enable profiling

-- Run some selects / inserts etc
select count(*) from mytable;
insert into mytable (mydata) values ('wibble');

show profiles;

COMMIT; --or rollback

请注意,我还在每个查询后添加了分号

cgvd09ve

cgvd09ve2#

在回答我自己的问题时...
上面描述的内置MySQL概要分析工具似乎是基于MySQL会话运行的。phpMyAdmin似乎在每次发出命令时都创建一个新连接。因此,打开概要分析的命令和随后的选择彼此断开。
通过SSH连接到MySQL服务器并运行相同的命令可以确认这一点。
但是,它只分析在该会话中发出的命令。这意味着,从另一个源(即Web应用程序)对数据库执行的任何其他查询都不包括在分析结果中。
我还没有找到任何方法来分析数据库中的所有查询,而不管其来源(即MSSQL分析器的工作方式)。因此,目前我必须依赖于在我的.cnf中设置日志配置值,然后在SSH会话中手动执行记录的查询:

log=/var/log/mysqldquery.log

不是一个完美的解决方案,因为它有点费力,但它的工作。

7xllpg7q

7xllpg7q3#

虽然上述方法可能有效,但仍然有些危险。您必须记住,如果您使用复制和/或如果在这些查询日志中有更新,您将更改您的数据集。请谨慎使用。

mutmk8jj

mutmk8jj4#

我也遇到过同样的问题,我的个人资料没有显示我实际执行的查询。这是我得到的,它对我来说就像一个魅力。你可能需要从下面的路径登录到MySQL控制台F:\wamp64\bin\mysql\mysql8.0.27\bin -这是我的文件夹,你可以选择你的路径
在此处打开cmd行,并使用以下命令登录到MySQL控制台
mysql -u root[您的用户名] -p
输入密码按Enter键
您现在登录到MySQL,现在选择您要执行查询的数据库。一旦您执行了查询,就会激发查询显示配置文件;您将在表中获得上次执行的查询以及time和all。
哎呀,有一步我们忘了提到,在执行此操作之前,请在MySQL中启用配置文件。
希望这个能帮到你。

相关问题