MySQL Bin Files Eating Lots of Disk Space

MySQL binary log files can take up a lot of disk space over time if they are not managed properly. There are a few ways to address this issue:

  1. Purge old binary logs: You can use the PURGE BINARY LOGS BEFORE command to remove binary logs that are no longer needed. This command will delete all binary logs that are older than the specified log file name or date.

    For example, to delete all binary logs that are older than mysql-bin.000002, you can use the following command:

    mysql> PURGE BINARY LOGS BEFORE 'mysql-bin.000002';

    Alternatively, you can specify a date instead of a log file name:

    mysql> PURGE BINARY LOGS BEFORE '2022-01-01 00:00:00';
  2. Set a maximum size for binary logs: You can limit the size of binary logs by setting the max_binlog_size system variable. This will cause MySQL to automatically rotate binary logs when they reach the specified size.

    For example, to set the maximum size to 100MB, you can add the following line to your MySQL configuration file (my.cnf):

    max_binlog_size=100M
  3. Disable binary logging: If you don’t need binary logging, you can disable it altogether by adding the following line to your MySQL configuration file:
    skip-log-bin

    This will prevent MySQL from writing binary logs and free up disk space. However, keep in mind that binary logging is often used for backups and replication, so disabling it may have other consequences.

Leave a Comment