在这个简短易懂的指南中,我们介绍了如何启用MySQL/MariaDB查询日志并将查询保存到文件中。

使用数据库时,开发人员经常想知道幕后发生的事情。无论是用于故障排除、性能调整还是纯粹出于好奇。

通用查询日志仍然是 MySQL/MariaDB 数据库中最流行的审计和诊断信息来源之一。启用日志记录后,数据库服务器会在客户端连接或断开连接时将信息写入日志文件,并记录每条 SQL 语句。

但是,请记住,启用通用查询日志会影响 MySQL/MariaDB 性能。这将使吞吐量降低约 13%,并将 MySQL/MariaDB 服务器的响应时间增加约 17%。

现在我们开始吧,这个过程非常简单。

启用 MySQL/MariaDB 常规查询日志

在 MySQL/MariaDB 中,一般查询日志默认是禁用的。

1、以 root 身份进入 MySQL/MariaDB 服务器命令行工具:

mysql -u root -p

2、通过执行以下查询设置通用日志文件路径/var/logs/mysql/general-query.log

SET GLOBAL general_log_file='/var/log/mysql/general-query.log';

默认情况下,通用查询日志写入保存数据库子目录本身(通常为 /var/lib/mysql)的同一数据目录中,日志文件名默认为主机名。但是,如您所见,这是可以更改的。

3、启用服务器通用日志:

SET GLOBAL general_log = 1;

让我们再次检查一下 MySQL/MariaDB 通用查询日志状态:

SHOW VARIABLES LIKE "general_log%";

就这样。从这里开始,您可以 从命令行sudo tail -fgeneral-query.log文件执行类似的操作并密切关注。

完成检查后,您可以禁用 MySQL/MariaDB 查询日志记录,如下所示:

SET GLOBAL general_log = 0;

在生产服务器上打开日志记录当然是不可取的。所以请注意这一点,日志文件会很快变大。

如果您不想直接运行查询,您仍然可以通过直接修改 MySQL/MariaDB 配置文件来启用 MySQL/MariaDB 查询日志记录,但请记住,这种方法需要重新启动数据库服务器。

结论

当你怀疑客户端出现错误并想确切了解客户端发送到数据库的内容时,一般的 MySQL/MariaDB 查询日志会非常有用。因此,如果您对数据库有一些错误或问题,可以通过打开此日志来跟踪问题的一种方法,并检查正在发生的事情。

您可以在此处此处阅读有关启用一般 MySQL/MariaDB 查询日志的更多信息。

发表评论