Purging MySQL Binary Logs

If you have binary logging enabled on your MySQL server (i.e. the log-bin parameter is set in your MySQL configuration file), then you may notice a buildup of rather large files in your MySQL data directory over time (e.g. mysql-bin.000013). Generally speaking, you only need to enable this binary logging if your server is acting as a Replication Master or if you need the ability to do point in time recovery from your latest backup.

In any case, here are some useful commands for purging your binary log files:

To delete all binary logs older than 7 days:

mysql> PURGE BINARY LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 7 DAY);

To purge all logs before a specific date:

mysql> PURGE MASTER LOGS BEFORE '2008-01-01 00:00:00';

To purge logs automatically (every Monday at 3am) you could use a Unix cron job:

0 3 * * mon mysql -uroot -e "PURGE BINARY LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 7 DAY);"

3 thoughts on “Purging MySQL Binary Logs”

  1. Pingback: Rubén Ortiz
  2. Worth nothing that you can also have the binary log self truncate after n days by simply setting expire_logs_days = n in my.cnf

Leave a Reply