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

MySQL的日志轮转主要通过操作系统层面的日志管理工具(如logrotate)来实现,而不是由MySQL自身直接控制。合理配置日志轮转可以避免错误日志或慢查询日志过大,占用过多磁盘空间。
在配置轮转前,先确认MySQL的错误日志和慢查询日志的存储位置。可在MySQL配置文件中查看:
/var/log/mysql/error.log或/var/log/mysqld.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';"
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
}说明:
运行以下命令测试logrotate配置是否有语法错误:
sudo logrotate -d /etc/logrotate.d/mysql
使用-f参数可强制执行一次轮转测试:
sudo logrotate -f /etc/logrotate.d/mysql
检查日志目录是否生成了mysqld.log.1或压缩文件,并确认原日志被清空或重建。
MySQL必须支持SIGUSR1信号才能正确重载日志文件。大多数主流版本(尤其是使用mysqld_safe启动时)都支持。若使用systemd管理,也可改用:
postrotate
systemctl reload mysql > /dev/null 2>&1 || true
endscript确保MySQL服务有权限执行reload操作。
基本上就这些。配置完成后,系统会自动按周期轮转MySQL日志,避免日志文件无限增长。注意定期检查磁盘使用情况和轮转是否正常执行。
以上就是mysql如何配置日志轮转_mysql日志轮转配置方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号