我有一对为主从复制设置的 MySQL 数据库。奴隶做得很好。
另一方面,尽管我尽了最大的努力(自动化),但主人一直在囤积二进制日志。
我正在尝试在 MySQL 的 my.cnf 文件中设置“expire_logs_days”变量,但由于某种原因,它似乎被忽略了。我的 my.cnf 文件看起来像:
[mysqld]
...
log-bin=/var/log/mysql/mysql-bin.log
server-id=1
expire_logs_days=3
log_bin_trust_function_creators=TRUE
sync_binlog=1
[mysqld_safe]
...
但是当我SHOW VARIABLES WHERE Variable_Name='expire_logs_days'
在 MySQL 中运行时,它会返回一个值0
我试过了:
- 重启 MySQL
- 使用这条线:
expire_logs_days='3'
- 检查其他 my.cnf 文件:
mysqld --help --verbose | grep cnf
- 找到了这条线:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf order of preference
- 我的
my.cnf
文件位于/etc/my.cnf
- 在其他位置没有名为 my.cnf 的文件
SET GLOBAL expire_logs_days=3
可以在 MySQL 中工作,但本身并不能真正解决我的问题
这就是我能想到的所有事情。我已经运行了手动 PURGE 命令,它工作得很好,但我更喜欢(虽然,如果没有办法解决它,我还是会这样做)不使用 cron 运行 PURGE 命令。
有人有什么想法吗?我只是被轻拍了。
谢谢。