开发者社区> 问答> 正文

canal解析mysql json_object函数产生的binlog报错

环境信息

canal version :1.1.3 mysql version:5.7

问题描述

canal解析mysql json_object函数产生的binlog报错

引发报错的sql

update table set remark = JSON_OBJECT('0-1000', length_gt_0,'1000-2000', length_gt_1000,'2000-3000', length_gt_2000,'3000', length_gt_3000); 字段remark是json类型

期待结果

com.alibaba.otter.canal.parse.exception.CanalParseException: com.alibaba.otter.canal.parse.exception.CanalParseException: parse row data failed. Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: parse row data failed. Caused by: java.lang.IllegalArgumentException: limit excceed: 6 at com.taobao.tddl.dbsync.binlog.LogBuffer.fillBytes(LogBuffer.java:1557) at com.taobao.tddl.dbsync.binlog.LogBuffer.getData(LogBuffer.java:1578) at com.taobao.tddl.dbsync.binlog.JsonConversion.parse_scalar(JsonConversion.java:174) at com.taobao.tddl.dbsync.binlog.JsonConversion.parse_value(JsonConversion.java:71) at com.taobao.tddl.dbsync.binlog.JsonConversion$Json_Value.element(JsonConversion.java:277) at com.taobao.tddl.dbsync.binlog.JsonConversion$Json_Value.toJsonString(JsonConversion.java:290) at com.taobao.tddl.dbsync.binlog.event.RowsLogBuffer.fetchValue(RowsLogBuffer.java:1093) at com.taobao.tddl.dbsync.binlog.event.RowsLogBuffer.nextValue(RowsLogBuffer.java:125) at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parseOneRow(LogEventConvert.java:711) at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parseRowsEvent(LogEventConvert.java:545) at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parseRowsEvent(LogEventConvert.java:487) at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parse(LogEventConvert.java:125) at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parse(LogEventConvert.java:67) at com.alibaba.otter.canal.parse.inbound.AbstractEventParser.parseAndProfilingIfNecessary(AbstractEventParser.java:409) at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3$1.sink(AbstractEventParser.java:209) at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:178) at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:271) at java.lang.Thread.run(Thread.java:745)

原提问者GitHub用户daijunjian

展开
收起
山海行 2023-04-27 15:46:21 106 0
1 条回答
写回答
取消 提交回答
  • 先升级下canal版本到最新,印象中有解决过json的解析问题

    原回答者GitHub用户agapple

    2023-04-27 21:55:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像