Wie mache ich binlog-format = ROW zum Startstandard in der Datei /etc/my.cnf?

9

Ich kann die Abfrage SET GLOBAL binlog_format = 'ROW' ausführen und sie funktioniert für diese Sitzung.

Wie kann ich diese Einstellung nach dem Stoppen und Neustarten von MySQL beibehalten?

HINWEIS: Ich bin auf Version 5.5.19 von MySQL (mit Moodle) und habe gerade ein Upgrade von MyISAM auf InnoDB durchgeführt und benötige daher diese neue Einstellung.

Ich habe versucht, diese beiden Befehle (separat) zu my.cnf hinzuzufügen: binlog-format = ROW und binlog_format = ROW und beide funktionieren nicht. Ich habe MySQL jedes Mal gestoppt und neu gestartet, wenn ich die my.cnf geändert habe.

Der Fehler, den ich bekomme, ohne dass dies eingestellt ist, ist die schändliche Fehlermeldung:

Debug-Info: Anweisung kann nicht ausgeführt werden: Schreiben in Binärprotokoll nicht möglich, da BINLOG_FORMAT = STATEMENT und mindestens eine Tabelle eine Speicher-Engine verwendet, die auf zeilenbasierte Protokollierung beschränkt ist. InnoDB ist auf die Zeilenprotokollierung beschränkt, wenn die Transaktionsisolationsstufe READ COMMITTED oder READ UNCOMMITTED ist.

Konstanz
quelle

Antworten:

15

Ich denke, Ihr Problem könnte darauf zurückzuführen sein, wo Sie die Richtlinie geschrieben haben

[mysqld]Stellen Sie sicher, dass Sie die Option unter der Überschrift in /etc/my.cnf platzieren

[mysqld]
binlog_format = ROW

Wenn Sie es unter einem anderen Header platzieren, wird es vom mysqld-Prozess nicht angezeigt.

Versuche es !!!

RolandoMySQLDBA
quelle
Das hat funktioniert! Ja, es war unter einer anderen Überschrift.
Konstanz