alibaba / canal

阿里巴巴 MySQL binlog 增量订阅&消费组件
Apache License 2.0
28.44k stars 7.6k forks source link

启动deployer日志中出现druid解析sql错误信息 #4899

Open Dkbei opened 1 year ago

Dkbei commented 1 year ago

com.alibaba.druid.sql.parser.ParserException: illegal name, pos 24488, line 623, column 3, token TO at com.alibaba.druid.sql.parser.SQLExprParser.name(SQLExprParser.java:2370) at com.alibaba.druid.sql.dialect.mysql.parser.MySqlExprParser.parseColumn(MySqlExprParser.java:981) at com.alibaba.druid.sql.dialect.mysql.parser.MySqlCreateTableParser.parseCreateTable(MySqlCreateTableParser.java:435) at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseCreate(MySqlStatementParser.java:296) at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:245) at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:599) at com.alibaba.druid.sql.repository.SchemaRepository.console(SchemaRepository.java:468) at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta.apply(MemoryTableMeta.java:85) at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.buildMemFromSnapshot(DatabaseTableMeta.java:423) at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.rollback(DatabaseTableMeta.java:166) 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:192) at java.lang.Thread.run(Thread.java:748) 2023-10-07 19:11:44.925 [destination = xx.xx.xx.xx, address = /xx.xx.xx.xx:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> find start position successfully, EntryPosition[included=false,journalName=mysql-bin.000094,position=63919272,serverId=1,gtid=,timestamp=1696677103000] cost : 64ms , the next step is binlog dump

canal版本:canal-1.1.7-alpha-3 mysql版本: 5.6.41 deployer启动后好像需要通过druid解析一些建表sql,导致waraing info出现,异常出现时不影响数据同步

Dkbei commented 1 year ago

希望大佬能看到,并进行回复,如果解决这种问题呢?

agapple commented 1 year ago

具体报错的日志没发出来啊,SQL解析报错的语句是啥

Dkbei commented 1 year ago

具体报错的日志没发出来啊,SQL解析报错的语句是啥 sql_parse.log 大佬,日志中提示有多段错误,您看看

Dkbei commented 1 year ago

具体报错的日志没发出来啊,SQL解析报错的语句是啥 还有个问题大佬,版本canal-1.1.7-alpha-3,启动deployer后没有打开11112端口,不知道是不是bug,日志中没有任何相关的错误

Dkbei commented 1 year ago

具体报错的日志没发出来啊,SQL解析报错的语句是啥 还有个问题大佬,版本canal-1.1.7-alpha-3,启动deployer后没有打开11112端口,不知道是不是bug,日志中没有任何相关的错误

测试了,1.1.5 版本启动后正常打开了11112端口的

Hisioni commented 12 months ago

一样的错误,这样的日志真的没法调试...

Licheng-Xu commented 11 months ago

具体报错的日志没发出来啊,SQL解析报错的语句是啥 sql_parse.log 大佬,日志中提示有多段错误,您看看

com.alibaba.druid.sql.parser.ParserException: illegal name, pos 24488, line 623, column 3, token TO

看起来 oozie_email 这个表的 to 字段名是 MySQL 保留字,druid sql 解析失败

agapple commented 9 months ago

建表语句有关键字,这个应该是TableMetaTSDB输出时未做转义导致,最新主干增加了转义输出的处理,避免节点重启或者重置位点时DDL解析失败