Ich bin neu im MySQL-Binärprotokoll und der Replikation. Bitte helfen Sie mir, dieses Problem zu lösen.
Ich verwende MySQL Version 5.0.95 und habe jetzt Fehler in Binärprotokollen. Einige Abfragen im Binärprotokoll sind unbekannte Ereignisse und es tritt auch ein Fehler auf, wenn wir versuchen, das Lesen des Binärprotokolls mit dem Dienstprogramm mysqlbinlog zu erzwingen
mysqlbinlog techgv3_mysql-bin.000001 > /dev/null
Befehlsausgabe
ERROR: Error in Log_event::read_log_event(): 'Found invalid event in binary log', data_len: 341, event_type: 2
Could not read entry at offset 126:Error in log format or read error
Ich habe das Dienstprogramm mysqlbinlog mit einer anderen Version getestet. Aber ohne Erfolg. Derselbe Fehler. Viele unbekannte Ereignisse.
Betriebssystemversion: CentOS Release 6.4 (Final) 64 Bit
Befehlsausgabe
mysqlbinlog -f techgv3_mysql-bin.000001
#131212 17:21:42 server id 100 end_log_pos 112256
# Unknown event
# at 112256
#131212 17:21:42 server id 100 end_log_pos 112284 Intvar
SET INSERT_ID=13826501/*!*/;
# at 112284
#131212 17:21:42 server id 100 end_log_pos 112636
# Unknown event
# at 112636
#131212 17:21:42 server id 100 end_log_pos 112664 Intvar
SET INSERT_ID=13826502/*!*/;
# at 112664
#131212 17:21:42 server id 100 end_log_pos 113873
# Unknown event
# at 113873
#131212 17:21:43 server id 100 end_log_pos 113901 Intvar
SET INSERT_ID=13826503/*!*/;
# at 113901
#131212 17:21:43 server id 100 end_log_pos 114256
# Unknown event
# at 114256
#131212 17:21:43 server id 100 end_log_pos 114443
# Unknown event
# at 114443
#131212 17:21:43 server id 100 end_log_pos 114471 Intvar
SET INSERT_ID=13826504/*!*/;
# at 114471
#131212 17:21:43 server id 100 end_log_pos 114818
# Unknown event
# at 114818
#131212 17:21:43 server id 100 end_log_pos 114846 Intvar
SET INSERT_ID=13826505/*!*/;
# at 114846
#131212 17:21:43 server id 100 end_log_pos 115404
# Unknown event
# at 115404
Habe außerdem dieselbe MySQL-Version 5.0.95 in meinem lokalen System erstellt und führe alle MySQL-Abfragen aus dem allgemeinen Protokoll des Servers aus. Kannst du keinen Fehler im Binärprotokoll finden?
Haben Sie eine Idee, wie man dieses Problem lösen kann?
Antwort1
Ich hatte das gleiche Problem, aber die Lösung ist einfach. Aktualisieren Sie Ihr mysql-client
.
Die Binärprotokolle wurden mit einem mysql
Server mit einer anderen Version erstellt. Dies geschieht normalerweise, wenn Sie die Binärdatei von einem Remote-Server oder innerhalb eines Docker-Containers kopiert haben. Stellen Sie sicher, dass Ihre mysqlbinlong
Dienstprogrammversion dieselbe ist wie die mysql
Serverversion.