1. 使用`mysql -uroot -p123456 -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 5 DAY)'`命令删除5天前的日志,然后在控制台重置binlog。在主从同步环境中:2. 首先在从服务器检查正在读取的日志,选择最早的一个,然后在主服务器上执行`PURGE MASTER LOGS TO 'binlog.0000058'`...
MySQL&160;自动
结论:MySQL服务器开启binlog日志后,若未设置自动清理,日志文件会占用大量磁盘空间,导致数据库运行异常。为了安全地管理binlog,我们提供了三种清理方法,包括在无从属同步情况下、主从同步下以及配置MySQL自动清理。
清理无从属同步的binlog:
1. 使用`mysql -uroot -p123456 -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 5 DAY)'`命令删除5天前的日志,然后在控制台重置binlog。
在主从同步环境中:
2. 首先在从服务器检查正在读取的日志,选择最早的一个,然后在主服务器上执行`PURGE MASTER LOGS TO 'binlog.0000058'`或`PURGE MASTER LOGS BEFORE '2016-06-22 13:00:00'`等命令,以及清理指定时间范围内的日志。
3. 如果希望设置自动清理,编辑`/etc/my.cnf`,增加`expire_logs_days = 15`以删除15天前的日志,但需确保`log-bin`和`binlog_format`设置正确。
其他清理选项包括使用`PURGE {MASTER | BINARY} LOGS`命令,以及在运行时修改`expire_logs_days`或显示、设置日志相关变量。清理前建议备份重要数据,确保操作安全。
此外,了解binlog的日志模式(STATEMENT、ROW或MIXED)以及复制模式选择对清理和复制性能至关重要。在实际操作中,结合具体场景选择合适的方法,保持数据库的稳定和高效。2024-08-09