my.cnf配置
expire_logs_days=1
在 MySQL 中,你可以使用 PURGE BINARY LOGS 命令来删除 binlog 文件。以下是一些常见的用法:
删除所有早于指定日志文件名的 binlog 文件:
sql
PURGE BINARY LOGS TO ‘mysql-bin.000003’;
删除所有早于指定时间点的 binlog 文件:
sql
PURGE BINARY LOGS BEFORE ‘2024-03-10 00:00:00’;
删除所有早于当前时间一小时的 binlog 文件:
sql
PURGE BINARY LOGS BEFORE NOW() - INTERVAL 1 HOUR;
通过 RESET MASTER
删除与通过PURGE BINARY LOGS BEFORE NOW() - INTERVAL 1 HOUR;删除的优缺点比较
RESET MASTER 命令可以用于删除所有的二进制日志(binlog)文件,并将二进制日志索引文件重置为新的空文件。
使用 RESET MASTER 命令时,请务必谨慎操作,因为它会清除当前数据库实例的二进制日志,这将导致无法进行基于时间点的恢复或主从复制。
以下是使用 RESET MASTER 命令来删除二进制日志的步骤:
首先,登录到 MySQL 服务器的命令行界面或者使用适当的 MySQL 客户端。
执行以下命令:
sql
RESET MASTER;
这将删除所有的二进制日志文件,并将二进制日志索引文件重置为空。
请注意,执行 RESET MASTER 命令后,之前的二进制日志将无法恢复,因此在执行之前请确保你已经完成了必要的备份工作,并且明确了对数据的影响。
另外,如果你只想删除旧的二进制日志文件而保留最新的日志文件,可以使用 PURGE BINARY LOGS BEFORE NOW() 命令。这样可以删除早于当前时间的所有二进制日志文件,而保留当前正在使用的日志文件。