【问题标题】:MySQL - How to track every query? [duplicate]MySQL - 如何跟踪每个查询? [复制]
【发布时间】:2012-10-04 13:29:45
【问题描述】:
可能重复:
How to enable MySQL Query Log?
有没有办法跟踪 MySQL 中的每个 SQL 查询?
我正在使用 Doctrine ORM 构建实体并从数据库中获取它们,并且想看看 Doctrine 产生了哪些查询。那么当我刷新一个使用 Doctrine ORM 从数据库中获取一些数据的网页时,我在哪里可以看到在数据库中执行的查询?
这可能吗?
【问题讨论】:
标签:
php
mysql
logging
doctrine
【解决方案1】:
启用 MySQL 的general query log:
一般查询日志是mysqld 正在做什么的一般记录。服务器在客户端连接或断开连接时将信息写入此日志,并记录从客户端接收到的每个 SQL 语句。当您怀疑客户端出现错误并想确切了解客户端发送给mysqld 的内容时,通用查询日志非常有用。
MySQL 内部
set global general_log = 1;
set global log_output = 'table' /* so we can query it*/
select * from general_log /* to select */
truncate general_log /*if you got to much data*/
set global general_log = 0 /*to turn it off again*/