Если бинарное логирование включено, настройте следующие опции.

  • binlog_format — в каком формате хранить логи. Возможные значения:

    • ROW — хранить данные в двоичном виде. Это значение выбрано по умолчанию. Обеспечивает целостность данных, но они занимают больше места на диске.
    • STATEMENT — хранить SQL-запросы в бинарном виде. Данные будут занимать меньше места, но их целостность не гарантирована.
    • MIXED — сервер будет сохранять данные в режиме STATEMENT, а если не удастся сохранить их целостность, перейдёт в режим ROW.
  • expire_logs_days — сервер будет удалять логи, дата последней записи в которых превышает значение этой опции.

  • log_bin_trust_function_creators — как правило, по умолчанию опция включена (значение 1). Позволяет сохранять процедуры пользователям, для которых не установлены правила SUPER, CREATE ROUTINE и\или ALTER ROUTINE, если процедура вызывает запись небезопасных событий в bin-log.

  • max_binlog_size — максимальный размер файлов bin-log. Обратите внимание: одна транзакция не может быть разбита для хранения в нескольких файлах bin-log, поэтому если транзакции большие, то размер логов может превышать значение max_binlog_size. Значение по умолчанию — 1073741824B = 1G.

  • binlog_cache_size — определяет, сколько памяти сервер выделяет для хранения изменёных данных по транзакции для одного соединения. Если это значение будет превышено, система создаст временный файл на диске. Значение по умолчанию: 32768B.

  • max_binlog_cache_size — определяет максимальный размер временного файла, созданного при превышении значения binlog_cache_size. Если размер транзакции превысит значение binlog_cache_size + max_binlog_cache_size, транзакция будет прервана, и БД откатится к состоянию до транзакции.

Опции, с помощью которых можно уточнить лимиты использования памяти в транзакциях до отдельных запросов:

  • binlog_stmt_cache_size
  • max_binlog_stmt_cache_size

Пример:

log-bin = mysql-bin
binlog_format = MIXED
expire_logs_days = 7
log_bin_trust_function_creators = 1
max_binlog_size = 1G
binlog_cache_size = 32768
max_binlog_cache_size = 134217728