ERROR: Error in Log_event::read_log_event(): 'read error', data_len: 234781854, event_type: 2

1.版本

1)操作系统

 cat /etc/issue
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Kernel \r on an \m

 cat /proc/version
Linux version 2.6.32-504.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ) #1 SMP Wed Oct 15 04:27:16 UTC 2014

2)mysql数据库版本

mysql --version
mysql  Ver 14.14 Distrib 5.6.26, for linux-glibc2.5 (x86_64) using  EditLine wrapper


2.问题描述

   在使用mysqlbinlog执行如下命令的时候报错 mysql的binlog日志时报如下错误:

mysqlbinlog --start-position="845016601" --stop-position="845016721" --base64-output=decode-rows -v -v 3306-bin.000017 >test
ERROR: Error in Log_event::read_log_event(): 'read error', data_len: 234781854, event_type: 2 


3.问题分析

  网上很多案例都说是因为mysqlbinlog 版本问题导致的

cd /
[root@all-middle-mysql-05 /]# find ./ -name mysqlbinlog
./data/mysql/mysql-advanced-5.6.26-linux-glibc2.5-x86_64-2/bin/mysqlbinlog
./data/mysql/mysql-advanced-5.6.26-linux-glibc2.5-x86_64/bin/mysqlbinlog
./data/mysql/mysql3308/bin/mysqlbinlog
./usr/bin/mysqlbinlog
##本机上有这些mysqlbinlog,但是这些mysqlbinlog版本都是一致的,我使用的是/usr/bin/mysqlbinlog

mysqlbinlog --version
mysqlbinlog Ver 3.4 for linux-glibc2.5 at x86_64

##我的库是5.6.26版本,使用的就是mysqlbinlog 3.4  而且如下的命令我执行是成功的,所以应该不是版本的问题

mysqlbinlog --start-datetime="2015-12-12 00:00:00" --stop-datetime="2015-12-12 00:30:00"  --base64-output=decode-rows -v -v  3306-bin.000017 >test


4.问题解决

  后来发现了问题,我想根据从库的sql线程报错(报错中包含 end_log_pos 845016721)中指定的end position 去分析日志,所以就根据end position往前推了一个start position,结果那个start position根本不存在,所以报错。我把--start-position参数去掉 上面报错的命令就执行成功了

mysqlbinlog --stop-position="845016721" --base64-output=decode-rows -v -v 3306-bin.000017 >test




你可能感兴趣的:(error,error,in,2,Log_e,data_len,234781854,event_type)