MySQL在/var/lib/mysql目录下生成文件。

3
我们注意到我们的一台运行Mysql 5.5.37(InnoDb)的机器空间不足。Mysql似乎每天在/var/lib/mysql文件夹中生成几个名称模式为0.0001234(递增数字)的约1.1GB文件。
这些文件是什么?
它们可以被删除吗?
我们可以配置mysql将它们写入不同的位置吗?

1
看起来这些是二进制日志。如果我是你,我不会随便删除它们 - 我会在这里咨询:https://dev.mysql.com/doc/refman/5.7/en/purge-binary-logs.html。我相信你可以将它们配置到其他地方,但我目前还无法找到这个方法。现在你知道它们是什么了,我相信你可以解决的。祝你好运! :) - FreudianSlip
文件名是什么? - Bernd Buffen
4
尝试执行以下命令:PURGE BINARY LOGS to 'the last FILENAME' ; 即 bin-log12345。 - Bernd Buffen
谢谢,是的,我们刚刚发现这些可能是二进制日志。我们之前的数据库管理员设置了log_bin=0,这似乎没有禁用它们,而是将名称模式设置为0.\d+。 - jvataman
1
"PURGE BINARY LOGS" 已经生效了。问题已解决,谢谢! - jvataman
1
请注意,清除二进制日志是一次性的修复。请参考下面Rick的答案。可以通过设置一定天数后自动删除文件。请参见expire_logs_days - Bill Karwin
2个回答

4
为了避免需要定期清除,请设置以下内容:

expire_logs_days = 7

在 my.cnf 文件中设置,这将使二进制日志保留 7 天的记录。

另请参阅 MySQL 8.0 中的 binlog_expire_logs_seconds


1
原来这些是二进制日志。
设置log_bin=0并不能禁用它们,只是将文件名格式设置为0.\d+。
我们使用PURGE BINARY LOGS to 'lastFileName'删除了现有的日志,然后通过注释my.cnf中所有与bin_log相关的条目来禁用生成。

2
您不一定想要禁用它们。这些日志可以用于时间点恢复。当然,如果您想使用复制,则需要这些日志。 - Bill Karwin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接