开发者社区> 问答> 正文

当表设置的主键对字段长度进行限定时,canal不识别该列

CREATE TABLE job_execution_script ( app_id INT(11) NOT NULL, job_id INT(11) NOT NULL, script_name VARCHAR(512) NOT NULL DEFAULT '', committer_name VARCHAR(128) NOT NULL DEFAULT '', PRIMARY KEY (app_id,job_id,script_name(100),committer_name) ) ENGINE=INNODB DEFAULT CHARSET=utf8; 当表结构如上时,canal会报 “unknow column script_name(100)” 的ERROR~ 谢谢~

异常栈为: 2018-06-20 10:51:32.960 [destination = ido001 , address = ido001/180.137.128.151:3306 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:ido001[java.lang.RuntimeException: unknow column : script_name(100) at com.alibaba.otter.canal.parse.inbound.TableMeta.getFieldMetaByName(TableMeta.java:73) at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta.processTableElement(MemoryTableMeta.java:215) at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta.parse(MemoryTableMeta.java:151) at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta.find(MemoryTableMeta.java:106) at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.compareTableMetaDbAndMemory(DatabaseTableMeta.java:288) at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.applySnapshotToDB(DatabaseTableMeta.java:251) at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.rollback(DatabaseTableMeta.java:129) at com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.processTableMeta(AbstractMysqlEventParser.java:72) at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:170) at java.lang.Thread.run(Thread.java:745) ]

原提问者GitHub用户linweijiang

展开
收起
绿子直子 2023-05-09 10:16:16 51 0
1 条回答
写回答
取消 提交回答
  • 试试1.0.26版本

    原回答者GitHub用户agapple

    2023-05-10 09:29:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载