MySQL如何开启记录从客户端收到的每条SQL查询语句和提交时间的功能? 我可以在phpmyadmin或NaviCat中这样做吗? 如何分析日志?


当前回答

在phpMyAdmin 4.0,你去状态>监视器。在那里,您可以启用慢查询日志和常规日志,查看实时监视器,选择图表的一部分,查看相关查询并分析它们。

其他回答

在phpMyAdmin 4.0,你去状态>监视器。在那里,您可以启用慢查询日志和常规日志,查看实时监视器,选择图表的一部分,查看相关查询并分析它们。

对于mysql>=5.5仅用于慢查询(1秒或更长时间) my.cfg

[mysqld]
slow-query-log = 1
slow-query-log-file = /var/log/mysql/mysql-slow.log
long_query_time = 1
log-queries-not-using-indexes

可以禁用或启用常规查询日志(记录所有查询)

SET GLOBAL general_log = 1 # (or 0 to disable)

看看另一个相关问题的答案。它展示了如何在不重新启动的情况下启用、禁用和查看活动服务器上的日志。

在mysql中记录所有查询


以下是摘要:

如果你不想或者不能重新启动MySQL服务器,你可以在你正在运行的服务器上这样做:

创建日志表(见答案) 启用数据库的查询日志 (注意,字符串'table'应该按字面意思放置,而不是用任何表名代替。感谢尼古拉斯·皮克林)

SET global general_log = 1;
SET global log_output = 'table';

查看日志

select * from mysql.general_log;

禁用数据库查询日志

SET global general_log = 0;

不禁用地清除查询日志

TRUNCATE mysql.general_log

我还想让MySQL日志文件看到查询,我已经解决了这个问题与下面的说明

进入/etc/mysql/mysql.conf.d 打开mysqld.cnf . conf文件

并启用下面的行

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

使用/etc/init.重启MySQLd / mysql重启 进入/var/log/mysql/,检查日志