如何启用记录从客户端收到的每个 SQL 查询语句以及该查询语句提交时间的 MySQL 功能?我可以在 phpmyadmin 或 NaviCat 中执行此操作吗?如何分析日志?
首先, 请记住,此日志文件在繁忙的服务器上可能会变得非常大。
对于 mysql < 5.1.29:
要启用查询日志,请将其/etc/my.cnf放入[mysqld]部分
/etc/my.cnf
[mysqld]
log = /path/to/query.log #works for mysql < 5.1.29
此外,要从 MySQL 控制台启用它
SET general_log = 1;
见http://dev.mysql.com/doc/refman/5.1/en/query- log.html
对于 mysql 5.1.29+
对于 mysql 5.1.29+ ,该log选项已弃用。要指定日志文件并启用日志记录,请在以下[mysqld]部分的 my.cnf 中使用它:
log
general_log_file = /path/to/query.log general_log = 1
或者,从 MySQL 控制台打开日志记录(还必须以某种方式指定日志文件位置,或者找到默认位置):
SET global general_log = 1;
另请注意,还有其他选项可以仅记录慢速查询或不使用索引的查询。