• »
  • »
  • Отключение и удаление бинарных логов в MySQL

Отключение и удаление бинарных логов в MySQL

Со временем на сервере, где установлен MySQL, стало заканчиваться свободное место на диске. После недолгого поиска обнаруживаем в каталоге /var/lib/mysql файлы mysql-bin.000001, mysql-bin.000002 и т.д., размер которых достигает 1Гб. Это так называемые бинарные лог-файлы MySQL для организации репликации, когда несколько баз данных и для восстановления данных в случае сбоя.


Для решения проблемы и уменьшения время хранения логов, добавляем в секцию [mysqld] конфигурационного файла /etc/my.cnf, следующие параметры:

# Активируем бинарные логи.
log-bin
# Время хранения логов 5 дней
expire_logs_days = 5

После перезапуска службы mysqld устаревшие файлы будут удалены.

Чтобы полностью отключить ведение бинарных логов, необходимо закомментировать данные параметры:

# log-bin
# expire_logs_days = 5

Можно выполнить ручную чистку логов с помощью SQL-запросов:

  • Удаление логов до определенной даты '2016-06-30 00:00:00'
  • mysql> PURGE MASTER LOGS BEFORE '2016-06-30 00:00:00';
    
  • Удаление логов до определенного файла ‘mysql-bin.000010’
  • mysql> PURGE BINARY LOGS TO 'mysql-bin.000010'
    
  • Удаление логов старше 5 дней
  • mysql> PURGE BINARY LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 5 DAY);
    
  • Удаление всех логов
  • mysql> RESET MASTER;
    

Комментарии (2)

  1. Ronniecriny:
    20.03.2017 в 06:23

    Жалко, что 2 года назад я это не прочитал :O(

    Ответить

    1. I-Cube:
      01.11.2023 в 10:49

      А я спустя 7 лет ))

      Ответить