我正在使用 5.7.37-log MySQL Community Server。我的 mysqld.cnf 如下所示:
server_id = 11
log_bin = bin.log
log-bin-index = bin-log.index
binlog_format = row
max_binlog_size = 100M
socket = mysql.sock
expire_logs_days = 1
我对 expire_logs_days = 1 的期望是 1 天后日志将被清除。而且我将无法看到较旧的日志.. 但是当我在一周后检查日志时,当当前日志名称为 bin.000006 时,我仍然可以看到 bin.000001。当我重新启动 mysql 服务器并创建新日志时,我观察到旧日志被清除。
但我不想重新启动服务器来删除我的旧文件。它们应该被自动删除。我担心在累积旧日志时会填满磁盘空间(我肯定不需要它们)并且我不想为此重新启动 sql server。
我也曾在某些表格中看到建议运行PURGE BINARY LOGS BEFORE NOW() - INTERVAL 1 DAY;
但是我不明白当我们已经设置配置时手动运行上面的语句有什么意义。
如果我的理解和期望是否正确,请帮助我。以及如何测试或确保日志被自动删除?并且对磁盘空间无害。
附上我生成的 bin 日志的屏幕截图。