启用通用查询日志需在配置文件中添加general_log=1并指定日志路径,log_output决定输出到文件或mysql.general_log表;慢查询日志通过slow_query_log=1开启,设置long_query_time阈值和log_queries_not_using_indexes以捕获未使用索引的语句,MySQL 8.0+可启用log_slow_extra获取更多执行信息;错误日志由log_Error定义路径,log_error_verbosity设为3以记录详细信息;二进制日志启用log_bin并推荐binlog_format=ROW以确保数据一致性。根据需求开启日志并监控磁盘使用。

启用并设置通用查询日志
通用查询日志记录所有进入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模式,避免数据不一致风险。
基本上就这些。根据需求开启对应日志,并注意磁盘空间管理。


