1,表结构
CREATE TABLE User ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(255) DEFAULT NULL, mobile varchar(255) DEFAULT NULL, num varchar(255) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
2,现有数据 INSERT INTO User VALUES (1, 'aaabcdf', '11', null);
3,update 操作 update User set num='' where id=1;
4,执行 mysqlbinlog --base64-output=decode-rows -v mysql-bin.000009 #170407 17:29:39 server id 91 end_log_pos 426 CRC32 0x4a097dfe Update_rows: table id 109 flags: STMT_END_F
UPDATE test.User WHERE @1=1 @2='aaabcdf' @3='11' @4=NULL SET @1=1 @2='aaabcdf' @3='11' @4='' 5,开启同步, 解析出的EventData [EventData[tableId=4041,tableName=User,schemaName=test,eventType=UPDATE,executeTime=1491557379000,oldKeys=[],keys=[EventColumn[index=0,columnType=4,columnName=id,columnValue=1,isNull=false,isKey=true,isUpdate=true]],columns=[],size=74,pairId=-1,sql=,ddlSchemaName=,syncMode=,syncConsistency=,remedy=false,hint=,withoutSchema=false,canLoadDDL=false,logfileIndex=9,logfileOffset=352]] 生成的sql update test.User set where ( id = ? )
报错:
PairId: 24 , TableId: 4,040 , EventType : U , Time : 1491557379000 Consistency : , Mode :
原提问者GitHub用户 tmriver
可以了,升级到v4.2.13就可以了,原来用的是4.2.13-snapshot,依赖的是canal-parse-1.0.20。
原回答者GitHub用户tmriver
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。