mysql binlog エラー「エラー: Log_event::read_log_event() でエラーが発生しました: 'バイナリ ログに無効なイベントが見つかりました'、data_len: 341、event_type: 2 **」

mysql binlog エラー「エラー: Log_event::read_log_event() でエラーが発生しました: 'バイナリ ログに無効なイベントが見つかりました'、data_len: 341、event_type: 2 **」

私は 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

関連情報