如何在mysql中配置日志输出格式

来源:这里教程网 时间:2026-02-28 20:17:01 作者:

启用并设置通用查询日志

通用查询日志记录所有进入MySQL的SQL语句,适合用于调试和审计。要启用它,可在配置文件

my.cnf
my.ini
中添加:

[mysqld]
general_log = 1
general_log_file = /var/log/mysql/general.log
log_output = file

log_output
可设为
file
table
或两者
file,table
。若设为
table
,日志会写入
mysql.general_log
表。

配置慢查询日志格式

慢查询日志帮助识别执行时间较长的SQL语句。启用方式:

[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
log_queries_not_using_indexes = 1

long_query_time
定义“慢”的阈值(单位:秒)。
log_queries_not_using_indexes
会记录未使用索引的查询,即使它们执行很快。

输出格式受

log_slow_extra
(MySQL 8.0+)影响,启用后会在File格式日志中增加如锁时间、扫描行数等额外信息。

错误日志的基本配置

错误日志记录启动、关闭及运行时的异常信息。配置如下:

[mysqld]
log_error = /var/log/mysql/error.log
log_error_verbosity = 3

log_error_verbosity
控制错误日志详细程度,1=error,2=error+warning,3=error+warning+note。推荐设为3以便排查问题。

二进制日志与格式选择

二进制日志(binlog)用于数据恢复和主从复制。配置:

[mysqld]
log_bin = /var/log/mysql/mysql-bin.log
binlog_format = ROW

binlog_format
有三种模式:
STATEMENT:记录SQL语句,日志量小但可能不安全
ROW:记录每行数据变更,最安全,推荐用于复制
MIXED:自动在SBR和RBR间切换

生产环境建议使用

ROW
模式,避免数据不一致风险。

基本上就这些。根据需求开启对应日志,并注意磁盘空间管理。

相关推荐