在Linux系统中,MySQL的日志管理主要包括以下几个方面:
二进制日志(Binary Log):
二进制日志记录了数据库的所有更改操作,如插入、更新和删除。它主要用于数据恢复、主从复制和审计。要管理二进制日志,你需要编辑MySQL配置文件(通常是/etc/my.cnf或/etc/mysql/my.cnf),并设置以下参数:
log-bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
binlog_format = MIXED
这里,log-bin设置了二进制日志文件的路径,expire_logs_days设置了日志文件的过期时间,max_binlog_size设置了单个日志文件的最大大小,binlog_format设置了日志格式。
重启MySQL服务后,新的设置将生效。要手动清除旧的二进制日志,可以使用PURGE BINARY LOGS命令,例如:
PURGE BINARY LOGS TO 'mysql-bin.010';
PURGE BINARY LOGS BEFORE '2021-06-01 00:00:00';
错误日志(Error Log): 错误日志记录了MySQL服务器的启动、运行和关闭过程中的信息,以及错误和警告。要管理错误日志,你需要编辑MySQL配置文件,并设置以下参数:
log_error = /var/log/mysql/error.log
log_warnings = 2
这里,log_error设置了错误日志文件的路径,log_warnings设置了警告信息的级别。
重启MySQL服务后,新的设置将生效。要手动清除旧的错误日志,可以使用mysqladmin flush-logs命令或SET GLOBAL expire_logs_days = 0;命令。
慢查询日志(Slow Query Log): 慢查询日志记录了执行时间超过指定阈值的SQL语句。要管理慢查询日志,你需要编辑MySQL配置文件,并设置以下参数:
slow_query_log = 1
long_query_time = 2
slow_query_log_file = /var/log/mysql/mysql-slow.log
这里,slow_query_log设置了是否启用慢查询日志,long_query_time设置了慢查询的时间阈值(单位:秒),slow_query_log_file设置了慢查询日志文件的路径。
重启MySQL服务后,新的设置将生效。要手动清除旧的慢查询日志,可以使用mysqladmin flush-logs命令或SET GLOBAL expire_logs_days = 0;命令。
查询日志(General Query Log): 查询日志记录了MySQL服务器接收到的所有SQL语句。查询日志通常用于调试和分析。要管理查询日志,你需要编辑MySQL配置文件,并设置以下参数:
general_log = 1
general_log_file = /var/log/mysql/mysql.log
这里,general_log设置了是否启用查询日志,general_log_file设置了查询日志文件的路径。
重启MySQL服务后,新的设置将生效。要手动清除旧的查询日志,可以使用mysqladmin flush-logs命令或SET GLOBAL expire_logs_days = 0;命令。
注意:在修改配置文件和执行相关命令时,请确保你有足够的权限。在生产环境中,建议定期备份日志文件以防止数据丢失。