我在/etc/my.cnf中有以下设置
log-bin = /var/lib/mysql_bin_logs/mysql-bin.log expire_logs_days = 3 max_binlog_size = 100M relay-log = /var/lib/mysql/slave-relay.log relay-log-index = /var/lib/mysql/slave-relay-log.index log-slave-updates
我可以看到/var/lib/mysql_bin_logs/文件夹的大小保持不变。 然而,光盘正在填满,我认为这是与文件描述符的这些二进制日志文件没有被正确closures。 当我重新启动MySQL时,磁盘使用量下降了几千兆字节,这表明重新启动的行为释放了空间。
除了在cronjob上重新启动MySQL之外,如何防止磁盘被这种方式填满?
首先,我会尝试使用lsof -u mysql来查看MySQL已打开的文件。 你也可以发现做lsof -u mysql | grep deleted更有帮助 lsof -u mysql | grep deleted以查看MySQL仍然打开但被删除的文件。 如果事实certificate挂在你周围的日志文件可以尝试在MySQL内部发布一个FLUSH LOGS作为解决方法,并查看它是否closures它们。