Как сделать binlog-format = ROW по умолчанию при запуске в файле /etc/my.cnf?

9

Я могу выполнить запрос SET GLOBAL binlog_format = 'ROW', и он работает для этой сессии.

Как мне сделать эту настройку после остановки и перезапуска MySQL?

ПРИМЕЧАНИЕ: я использую версию MySQL 5.5.19 (с Moodle), и я только что обновил MyISAM до InnoDB, и поэтому мне нужен этот новый параметр.

Я попытался добавить эти две команды (отдельно) в my.cnf: binlog-format = ROW и binlog_format = ROW, и ни одна из них не работает. Я останавливал и перезапускал MySQL каждый раз, когда менял my.cnf.

Ошибка, которую я получаю без этой установки, является ложным сообщением об ошибке:

Отладочная информация: Невозможно выполнить оператор: невозможно записать в двоичный журнал, поскольку BINLOG_FORMAT = STATEMENT и хотя бы в одной таблице используется механизм хранения, ограниченный ведением журнала на основе строк. InnoDB ограничивается регистрацией строк, когда уровень изоляции транзакции READ COMMITTED или READ UNCOMMITTED.

Констанция
источник

Ответы:

15

Я думаю, что ваша проблема может быть связана с тем, где вы написали директиву

Убедитесь, что вы [mysqld]поместили параметр под заголовком в /etc/my.cnf

[mysqld]
binlog_format = ROW

Если вы поместите его под любым другим заголовком, процесс mysqld не увидит его.

Попробуйте!

RolandoMySQLDBA
источник
Это сработало! Да, это было под другим заголовком.
Констанс
0

3 значения для binlog_format

[mysqld]
binlog_format = ROW
[mysqld]
binlog_format = STATEMENT
[mysqld]
binlog_format = MIXED
Alternatifs
источник