我是 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
。
binlog 是使用不同版本的mysql
服务器创建的。这通常发生在您从远程服务器或 Docker 容器内复制二进制文件时。确保您的mysqlbinlong
实用程序版本与mysql
服务器版本相同,而不是相同。