Jak ustawić binlog-format = ROW jako domyślny przy uruchamianiu w pliku /etc/my.cnf?

9

Mogę uruchomić zapytanie SET GLOBAL binlog_format = 'ROW' i działa dla tej sesji.

Jak ustawić to ustawienie po zatrzymaniu i ponownym uruchomieniu MySQL?

UWAGA: Korzystam z wersji 5.5.19 MySQL (z Moodle) i właśnie zaktualizowałem MyISAM do InnoDB i dlatego potrzebuję tego nowego ustawienia.

Próbowałem dodać te dwa polecenia (osobno) do mojego.cnf : binlog-format = ROW i binlog_format = ROW i żadne z nich nie działa. Zatrzymałem i zrestartowałem MySQL za każdym razem, gdy zmieniałem plik my.cnf.

Błąd, który otrzymuję bez ustawienia tego, to nikczemny komunikat o błędzie:

Informacje o debugowaniu: Nie można wykonać instrukcji: nie można zapisać do dziennika binarnego, ponieważ BINLOG_FORMAT = STATEMENT, a co najmniej jedna tabela korzysta z mechanizmu pamięci ograniczonego do rejestrowania w wierszach. InnoDB ogranicza się do rejestrowania wierszy, gdy poziom izolacji transakcji jest PRZECZYTAJ ZATWIERDZONY lub ODCZYTAJ NIEZGODNY.

Constance
źródło

Odpowiedzi:

15

Myślę, że twój problem może wynikać z miejsca, w którym napisałeś dyrektywę

Upewnij się, że umieściłeś opcję pod [mysqld]nagłówkiem w /etc/my.cnf

[mysqld]
binlog_format = ROW

Jeśli umieścisz go pod jakimkolwiek innym nagłówkiem, proces mysqld go nie zobaczy.

Spróbuj !!!

RolandoMySQLDBA
źródło
To zadziałało! Tak, było pod inną pozycją.
Konstancja
0

3 Wartości dla binlog_format

[mysqld]
binlog_format = ROW
[mysqld]
binlog_format = STATEMENT
[mysqld]
binlog_format = MIXED
Alternatifs
źródło