Skip to content

canal解析增加分区语句失败 #3900

@lilibin-0618

Description

@lilibin-0618

environment

  • canal version 1.1.5
  • mysql version Percona-Server-5.7.28, ENGINE = TokuDB

Issue Description

mysql执行增加分区的操作,一次性增加多个分区导致canal解析sql语句错误,但是逐条创建分区是正常的。

Steps to reproduce

查询了报错,应该是druid的问题

Expected behaviour

期望官方修复druid问题并引用进canal。

If there is an exception, please attach the exception trace:

Just put your stack trace here!
![242cefc87aea4cfc1b817f839f0b8dd6-80079](https://user-images.githubusercontent.com/85610880/139838129-51b350a7-16a9-45ae-aac1-276df50b79f0.png)

下面是canal的报错:
2021-11-02 19:30:43.759 [destination = online_mysql_XXXXX_progress , address = /172.16.2.109:3306 , EventParser] WARN  c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> begin to find start position, it will be long time for reset or first position
2021-11-02 19:30:43.765 [destination = online_mysql_XXXXX_progress , address = /172.16.2.109:3306 , EventParser] WARN  c.a.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta - parse faield : alter table daily_progress add partition ( partition p20220201 VALUES LESS THAN (738552) ENGINE = TokuDB, PARTITION pmax VALUES LESS THAN MAXVALUE ENGINE = TokuDB)
com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'ENGINE = TokuDB, PARTITION pmax VALUES ', expect ), actual ,, pos 105, line 1, column 105, token ,
	at com.alibaba.druid.sql.parser.SQLParser.printError(SQLParser.java:576) ~[druid-1.2.6.jar:1.2.6]
	at com.alibaba.druid.sql.parser.SQLParser.accept(SQLParser.java:584) ~[druid-1.2.6.jar:1.2.6]
	at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseAlterSpecification(MySqlStatementParser.java:6110) ~[druid-1.2.6.jar:1.2.6]
	at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseAlterTable(MySqlStatementParser.java:6810) ~[druid-1.2.6.jar:1.2.6]
	at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseAlter(MySqlStatementParser.java:5166) ~[druid-1.2.6.jar:1.2.6]
	at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:304) ~[druid-1.2.6.jar:1.2.6]
	at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:565) ~[druid-1.2.6.jar:1.2.6]
	at com.alibaba.druid.sql.SQLUtils.parseStatements(SQLUtils.java:587) ~[druid-1.2.6.jar:1.2.6]
	at com.alibaba.druid.sql.repository.SchemaRepository.console(SchemaRepository.java:445) ~[druid-1.2.6.jar:1.2.6]
	at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta.apply(MemoryTableMeta.java:84) ~[canal.parse-1.1.5.jar:na]
	at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.applyHistoryOnMemory(DatabaseTableMeta.java:454) [canal.parse-1.1.5.jar:na]
	at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.rollback(DatabaseTableMeta.java:167) [canal.parse-1.1.5.jar:na]
	at com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.processTableMeta(AbstractMysqlEventParser.java:142) [canal.parse-1.1.5.jar:na]
	at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$1.run(AbstractEventParser.java:197) [canal.parse-1.1.5.jar:na]
	at java.lang.Thread.run(Thread.java:748) [na:1.8.0_201]
2021-11-02 19:30:43.765 [destination = online_mysql_XXXXX_progress , address = /172.16.2.109:3306 , EventParser] WARN  c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> find start position successfully, EntryPosition[included=false,journalName=mysql-bin.002668,position=713513730,serverId=1182953,gtid=3aby17t7a-11ef-11eb-885d-e4434ba4a6a8:1,5695430b-6a7d-11ea-9h52-e4434bb61830:1-10609618787,3a720ff1-74ee-11eb-92bb-246e96247198:1-2,f5d64471-6e5f-11e6-a298-246e96247198:1-1670230942,4b9e5eb0-6e61-11e6-a2a0-246e9624736c:1-125,timestamp=1635760819000] cost : 6ms , the next step is binlog dump


Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions