%20%E3%81%A7%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%3A%20'%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%20%E3%83%AD%E3%82%B0%E3%81%AB%E7%84%A1%E5%8A%B9%E3%81%AA%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F'%E3%80%81data_len%3A%20341%E3%80%81event_type%3A%202%20**%E3%80%8D.png)
私は MySQL バイナリ ログとレプリケーションの初心者です。この問題の解決を手伝ってください。
私はMySQLバージョン5.0.95を使用していますが、現在バイナリログでエラーが発生しています。バイナリログ内のクエリの一部は不明なイベントとして表示され、mysqlbinlogユーティリティを使用してバイナリログを強制的に読み取ろうとするとエラーが発生します。
mysqlbinlog techgv3_mysql-bin.000001 > /dev/null
コマンド出力
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
異なるバージョンで mysqlbinlog ユーティリティをテストしました。しかし、うまくいきませんでした。同じエラーです。不明なイベントが多数あります。
OSバージョン: CentOSリリース6.4 (最終) 64ビット
コマンド出力
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
また、ローカル システムに同じ mysql バージョン 5.0.95 を作成し、サーバーの一般ログからすべての mysql クエリを実行しました。バイナリ ログにエラーは見つかりませんか?
この問題を解決する方法をご存知ですか?
答え1
私も同じ問題を抱えていましたが、解決策は簡単です。 をアップグレードしてくださいmysql-client
。
バイナリログは、異なるバージョンのmysql
サーバーを使用して作成されました。これは通常、リモート サーバーから、または Docker コンテナー内でバイナリをコピーした場合に発生します。mysqlbinlong
ユーティリティ バージョンをサーバー バージョンと同じにし、同じにしないでくださいmysql
。