在这篇简短易懂的指南中,我们介绍了如何启用MySQL/MariaDB查询日志并将查询保存到文件中。使用数据库时,开发人员常常想知道幕后发生了什么。无论是用于故障排除、性能调整还是出于好奇。一般查询日志仍然是MySQL/MariaDB数据库上最受欢迎的审计和诊断信息来源之一。启用日志记录后,数据库服务器会在客户端连接或断开连接时将信息写入日志文件,并记录每个SQL语句。但是,请记住,启用一般查询日志记录会影响MySQL/MariaDB的性能。这将使吞吐量减少约13%,并将MySQL/MariaDB服务器的响应时间增加约17%。现在让我们开始吧,过程非常简单。启用MySQL/MariaDB通用查询日志记录在MySQL/MariaDB中,默认情况下禁用通用查询日志记录。1.以root身份进入MySQL/MariaDB服务器命令行工具:mysql-uroot-p2.通过执行以下查询设置通用日志文件路径/var/logs/mysql/general-query.log。SETGLOBALgeneral_log_file='/var/log/mysql/general-query.log';默认情况下,一般查询日志写入保存数据库子目录本身的同一个数据目录(通常是/var/lib/mysql),日志文件名默认为主机名。但是,如您所见,这是可以更改的。3.启用服务器通用日志:SETGLOBALgeneral_log=1;让我们再次检查MySQL/MariaDB通用查询日志状态:SHOWVARIABLESLIKE"general_log%";就是这样。从这里,您可以使用sudotail-f从命令行执行类似于general-query.log文件的操作并密切注意。检查后,您可以禁用MySQL/MariaDB查询日志记录,如下所示:SETGLOBALgeneral_log=0;在生产服务器上开启日志记录当然是不可取的。所以请注意,日志文件会很快变大。如果您不想直接运行查询,您仍然可以通过直接修改MySQL/MariaDB配置文件来启用MySQL/MariaDB查询日志记录,但请记住,此方法需要重新启动数据库服务器。结论当您怀疑客户端错误并想确切知道客户端向数据库发送了什么时,一般的MySQL/MariaDB查询日志会非常有用。因此,如果您的数据库存在一些错误或问题,追踪问题的一种方法是打开此日志,并检查发生了什么。您可以在此处和此处阅读有关启用通用MySQL/MariaDB查询日志记录的更多信息。
