今天尝试升级1.1.6版本,使用了1.1.6版本的canal-server docker 镜像, 发现了一个报错
DatabaseTableMeta类报错了, 有个奇怪的表BASE TABLE,调试代码的时候发现和1.1.6分支的代码对不上,把镜像里的 jar 包反编译,发现DatabaseTableMeta类的代码是1.1.6分支以后的代码
2022-06-11 15:51:23.648 [destination = canalEventForCanalSync , address = mysql/172.24.0.3:3306 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:canalEventForCanalSync[com.alibaba.otter.canal.parse.exception.CanalParseException: java.io.IOException: ErrorPacket [errorNumber=1146, fieldCount=-1, message=Table 'canal-sync.BASE TABLE' doesn't exist, sqlState=42S02, sqlStateMarker=#] with command: show create table canal-sync.canal_sync_config;show create table canal-sync.BASE TABLE; Caused by: java.io.IOException: ErrorPacket [errorNumber=1146, fieldCount=-1, message=Table 'canal-sync.BASE TABLE' doesn't exist, sqlState=42S02, sqlStateMarker=#] with command: show create table canal-sync.canal_sync_config;show create table canal-sync.BASE TABLE; at com.alibaba.otter.canal.parse.driver.mysql.MysqlQueryExecutor.queryMulti(MysqlQueryExecutor.java:109) at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.queryMulti(MysqlConnection.java:111) at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.dumpTableMeta(DatabaseTableMeta.java:233) at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.rollback(DatabaseTableMeta.java:174) at com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.processTableMeta(AbstractMysqlEventParser.java:142) at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$1.run(AbstractEventParser.java:197) at java.lang.Thread.run(Thread.java:748)
原提问者GitHub用户jimmy384
参考这个:https://github.com/alibaba/canal/tree/canal-1.1.6-hotfix-1
原回答者GitHub用户agapple
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。