So it turns out that what is filling up my root partition is my MySQL binary logs.

A collection of fat files in /var/log/mysql …

So I had several options:

  • Move the logs to a different partition
  • Increase the size of the root partition
  • Decrease the size of the logs

The first option is probably the most reasonable one. But since I had other plans for the evening I actually went with the last option: decreasing the size of the logs! :roll:

The magic conf is located in /etc/mysql/my.cnf and the magic line is:

expire_logs_days = 5

It was set to 10 but I have no idea why I even need 5 days. Aren’t those logs only useful until transactions commit to disk, and replication executes. Oh maybe if you have replicated slaves more than 5 days behind the master??

Edit 2009: You can purge the logs up to a specific file with a statement like this:

PURGE BINARY LOGS TO 'mysql-bin.000666';

Comments from long ago:

Comment from: dAniel hAhler

AFAIK binary logs are only needed for replication, not with a single server. ..and for “restore operations”, as per http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

You might want to disable them completely.

2007-10-15 01-50

Comment from: Gordon

^Exactly. Bin logs are only needed for replicated setups. You can disable binlogging by commenting out the appropriate line in my.cnf.

2007-11-30 01-42

Comment from: Ronald Bradford

MySQL Binary logs are critical for point in time recovery. i.e. all the data inserted/changed since your last static backup.

The comments about only needed for replication is not the full story.

2011-09-10 22-45