[MySQL/MariaDB] Warning: Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT

Achtung! Dieser Artikel ist älter als ein Jahr. Der Inhalt ist möglicherweise nicht mehr aktuell!

Folgender Fehler häuft sich seit meiner Umstellung von MySQL auf MariaDB. Vorallem, seitdem ich Tiny Tiny RSS installiert habe.

Aug 20 12:15:51 currywurst mysqld: 140820 12:15:51 [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave. Statement: DELETE FROM ttrss_user_entries
Aug 20 12:15:51 currywurst mysqld: #011#011#011#011USING ttrss_user_entries, ttrss_entries
Aug 20 12:15:51 currywurst mysqld: #011#011#011#011WHERE ttrss_entries.id = ref_id AND
Aug 20 12:15:51 currywurst mysqld: #011#011#011#011marked = false AND
Aug 20 12:15:51 currywurst mysqld: #011#011#011#011feed_id = '11' AND
Aug 20 12:15:51 currywurst mysqld: #011#011#011#011
Aug 20 12:15:51 currywurst mysqld: #011#011#011#011ttrss_entries.date_updated < DATE_SUB(NOW(), INTERVAL 60 DAY)

Nach kurzer Recherche (umgangssprachlich auch „googeln“ genannt) habe ich herausgefunden, dass es sich hierbei um eine Wichtige Information für die Replizierung. Da ich aber keinen Datenbankcluster habe und die Meldungen ziemlich häufig vorkommen musste ich nach einer Lösung suchen. Auf Seite 2 (ja dich bin ich auch manchmal unterwegs) habe ich

die Lösung dank diesem Blogeintrag gefunden.

Es sind tatsächlich nur zwei sed-Kommandos nötig, die das Binary-Logging umstellen.

sed-i-e"s|binlog-format|#binlog-format|"/etc/mysql/my.cnf
sed-i-e"s|log_bin|binlog-format = MIXED\nlog_bin|"/etc/mysql/my.cnf

Gefolgt von einem kurzen Neustart von MySQL/MariaDB.


Du hast einen Kommentar, einen Wunsch oder eine Verbeserung? Schreib mir doch eine E-Mail! Die Infos dazu stehen hier.

🖇️ = Link zu anderer Webseite
🔐 = Webseite nutzt HTTPS (verschlüsselter Transportweg)
Zurück