mysql如何配置日志轮转_mysql日志轮转配置方法

7次阅读

MySQL 日志轮转依赖操作系统工具 logrotate 实现,需先确认错误日志和慢查询日志路径,通过 SHOW VARIABLES 命令查看;接着创建 /etc/logrotate.d/mysql 配置文件,设置每日轮转、保留 7 天、压缩备份,并用 kill -USR1 或 systemctl reload 通知 MySQL 重载日志;最后测试配置语法及执行效果,确保日志正常轮转且不占用过多磁盘空间。

mysql 如何配置日志轮转_mysql 日志轮转配置方法

MySQL 的日志轮转主要通过 操作系统 层面的日志管理 工具(如 logrotate)来实现,而不是由 MySQL 自身直接控制。合理配置日志轮转可以避免错误日志或慢查询日志过大,占用过多磁盘空间。

1. 确认 MySQL 日志路径

在配置轮转前,先确认 MySQL 的错误日志和慢查询日志的存储位置。可在 MySQL配置文件 中查看:

  • 错误日志(error log):通常在 /var/log/mysql/error.log/var/log/mysqld.log
  • 慢查询日志(slow query log):路径由 slow_query_log_file 参数指定

可通过以下命令查看当前设置:

mysql -u root -p -e "SHOW VARIABLES LIKE 'log_error';" mysql -u root -p -e "SHOW VARIABLES LIKE 'slow_query_log_file';"

2. 创建 logrotate 配置文件

Linux 系统一般使用 logrotate 服务管理日志轮转。为 MySQL 创建专用配置文件:

编辑配置文件:

sudo vim /etc/logrotate.d/mysql

添加如下内容(根据实际日志路径调整):

/var/log/mysqld.log {daily     missingok     rotate 7     compress     delaycompress     notifempty     create 640 mysql mysql     sharedscripts     postrotate         if [ -f /var/run/mysqld/mysqld.pid]; then             kill -USR1 `cat /var/run/mysqld/mysqld.pid`         fi     endscript }

说明:

  • daily:每天轮转一次
  • rotate 7:保留最近 7 个备份
  • compress:轮转后压缩旧日志
  • create 640 mysql mysql:创建新日志文件并设置权限和属主
  • kill -USR1:通知 MySQL 重新打开日志文件(清空原文件句柄)

3. 测试配置是否正确

运行以下命令测试 logrotate 配置是否有语法错误:

sudo logrotate -d /etc/logrotate.d/mysql

使用 -f 参数可强制执行一次轮转测试:

sudo logrotate -f /etc/logrotate.d/mysql

检查日志目录是否生成了 mysqld.log.1 或压缩文件,并确认原日志被清空或重建。

4. 确保 MySQL 支持信号重载日志

MySQL 必须支持 SIGUSR1 信号才能正确重载日志文件。大多数主流版本(尤其是使用 mysqld_safe 启动时)都支持。若使用 systemd 管理,也可改用:

postrotate     systemctl reload mysql > /dev/null 2>&1 || true endscript

确保 MySQL 服务有权限执行 reload 操作。

基本上就这些。配置完成后,系统会自动按周期轮转 MySQL 日志,避免日志文件无限增长。注意定期检查磁盘使用情况和轮转是否正常执行。

text=ZqhQzanResources