mysql数据库日志文件过大如何清理_定期备份与重置日志文件

张开发
2026/4/16 1:40:21 15 分钟阅读

分享文章

mysql数据库日志文件过大如何清理_定期备份与重置日志文件
应使用PURGE BINARY LOGS或设置binlog_expire_logs_seconds自动清理禁用手动删除误删index文件可FLUSH BINARY LOGS重建慢日志可动态关闭后轮转错误日志需信号重载备份前须确认binlog未被过期清理且权限充足。MySQL 的 binlog 文件占满磁盘怎么办直接删 binlog 文件会破坏主从同步或导致恢复失败必须用 MySQL 自己的命令清理。关键不是“删”而是“过期自动淘汰”或“安全截断”。SHOW BINARY LOGS 先看当前有哪些日志、大小和生成时间用 PURGE BINARY LOGS BEFORE 2024-05-01 00:00:00 清理指定时间前的日志注意时区建议用 NOW() - INTERVAL 7 DAY更稳妥的做法是设置 expire_logs_days 7MySQL 8.0.23 改为 binlog_expire_logs_seconds 604800让服务自动清理别手动 rm -f /var/lib/mysql/mysql-bin.* —— MySQL 还在写index 文件没更新下次启动可能报错 Failed to open log file误删了 mysql-bin.index 怎么恢复这个文件记录所有 binlog 文件名MySQL 启动和 PURGE 都依赖它。一旦丢失SHOW BINARY LOGS 会返回空甚至主从 IO 线程卡住。如果 MySQL 还在运行立刻执行 FLUSH BINARY LOGS它会重建 mysql-bin.index 并追加当前活跃日志名如果已崩溃重启失败先确认 log_bin 是开启的SELECT log_bin 返回 1再手动重建 index 文件把当前存在的 mysql-bin.0000* 文件名按顺序写进 mysql-bin.index每行一个路径要绝对准确别用 RESET MASTER —— 它清空所有 binlog 并重置序列号主从环境里等于直接断掉复制链路slow_query_log_file 和 error_log 能不能直接清空可以但方式不同慢日志支持运行时轮转错误日志不支持原地清空必须配合系统命令和 MySQL 指令协同操作。 知网AI智能写作 知网AI智能写作写文档、写报告如此简单

更多文章