%20%E4%B8%AD%E5%87%BA%E7%8F%BE%E9%8C%AF%E8%AA%A4%EF%BC%9A%E2%80%98%E5%9C%A8%E4%BA%8C%E9%80%B2%E4%BD%8D%E6%97%A5%E8%AA%8C%E4%B8%AD%E7%99%BC%E7%8F%BE%E7%84%A1%E6%95%88%E4%BA%8B%E4%BB%B6%E2%80%99%EF%BC%8Cdata_len%3A%20341%EF%BC%8Cevent_type%3A%202%20**%E2%80%9D.png)
我是 mysql 二進位日誌和複製的新手。
我正在使用 mysql 版本 5.0.95,現在面臨 binlog 錯誤。二進位日誌中的一些查詢作為未知事件,並且當我們嘗試使用 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 實用程式。但沒有運氣。同樣的錯誤。很多未知事件。
作業系統版本: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
伺服器版本相同。