开发者社区> 问答> 正文

同步报TODO. pos 831, line 14, column 15, token LITERA

com.alibaba.fastsql.sql.parser.ParserException: TODO. pos 831, line 14, column 15, token LITERAL_ALIAS "FK_AbpAuditLogActions_AbpAuditLogs_AuditLogId" at com.alibaba.fastsql.sql.dialect.mysql.parser.MySqlCreateTableParser.parseConstraint(MySqlCreateTableParser.java:1474) ~[fastsql-2.0.0_preview_973.jar:2.0.0_preview_973] at com.alibaba.fastsql.sql.dialect.mysql.parser.MySqlCreateTableParser.parseCreateTable(MySqlCreateTableParser.java:278) ~[fastsql-2.0.0_preview_973.jar:2.0.0_preview_973] at com.alibaba.fastsql.sql.dialect.mysql.parser.MySqlStatementParser.parseCreate(MySqlStatementParser.java:291) ~[fastsql-2.0.0_preview_973.jar:2.0.0_preview_973] at com.alibaba.fastsql.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:231) ~[fastsql-2.0.0_preview_973.jar:2.0.0_preview_973] at com.alibaba.fastsql.sql.SQLUtils.parseStatements(SQLUtils.java:536) ~[fastsql-2.0.0_preview_973.jar:2.0.0_preview_973] at com.alibaba.fastsql.sql.repository.SchemaRepository.console(SchemaRepository.java:439) ~[fastsql-2.0.0_preview_973.jar:2.0.0_preview_973] at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta.apply(MemoryTableMeta.java:84) ~[canal.parse-1.1.5-SNAPSHOT.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.tsdb.DatabaseTableMeta.apply(DatabaseTableMeta.java:156) [canal.parse-1.1.5-SNAPSHOT.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.TableMetaCache.getTableMeta(TableMetaCache.java:183) [canal.parse-1.1.5-SNAPSHOT.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.getTableMeta(LogEventConvert.java:957) [canal.parse-1.1.5-SNAPSHOT.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parseRowsEventForTableMeta(LogEventConvert.java:481) [canal.parse-1.1.5-SNAPSHOT.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.MysqlMultiStageCoprocessor$SimpleParserStage.onEvent(MysqlMultiStageCoprocessor.java:274) [canal.parse-1.1.5-SNAPSHOT.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.MysqlMultiStageCoprocessor$SimpleParserStage.onEvent(MysqlMultiStageCoprocessor.java:246) [canal.parse-1.1.5-SNAPSHOT.jar:na] at com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:168) [disruptor-3.4.2.jar:na] at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125) [disruptor-3.4.2.jar:na] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_242-debug] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_242-debug] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_242-debug] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_242-debug] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_242-debug] 2020-08-26 10:05:22.000 [destination = example , address = /192.168.2.71:3306 , EventParser] ERROR c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - dump address /192.168.2.71:3306 has an error, retrying. caused by com.alibaba.otter.canal.parse.exception.CanalParseException: com.alibaba.otter.canal.parse.exception.CanalParseException: not found [Tect_CC.AbpAuditLogActions] in db , pls check! Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: not found [Tect_CC.AbpAuditLogActions] in db , pls check! 2020-08-26 10:05:22.004 [destination = example , address = /192.168.2.71:3306 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:example[com.alibaba.otter.canal.parse.exception.CanalParseException: com.alibaba.otter.canal.parse.exception.CanalParseException: not found [Tect_CC.AbpAuditLogActions] in db , pls check! Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: not found [Tect_CC.AbpAuditLogActions] in db , pls check!

原提问者Github用户 NiuziyuanPy

展开
收起
云上静思 2023-06-14 23:31:30 449 0
5 条回答
写回答
取消 提交回答
  • 数据库的编码和表的编码不一致

    原回答者Github用户 NiuziyuanPy

    2023-06-16 15:19:53
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    这个错误信息是由于 Otter 在解析 MySQL 表定义时遇到了一个 TODO 注释,它无法解析该注释,因此导致了异常。这通常是由于 MySQL 版本升级或者表定义更改引起的。

    要解决这个问题,你可以尝试升级 Otter 版本,或者手动修改表定义以删除 TODO 注释。另外,你可以检查 MySQL 表定义是否符合 MySQL 的语法规范,以确保 Otter 能够正确解析表定义。

    如果你无法升级 Otter 版本或修改表定义,你可以考虑使用其他的数据同步工具,例如 DataX 或者 Flink。这些工具都支持 MySQL 数据库的同步,且具有更好的兼容性和稳定性。

    2023-06-15 16:54:21
    赞同 展开评论 打赏
  • 根据报错信息,可以看出是在执行MySQL表创建语句时出现了问题,可能是由于表中的外键约束引起的。

    建议检查一下创建表的语句,看看是否存在语法错误或约束冲突等问题。同时,也需要检查一下数据库中是否存在名为"Tect_CC.AbpAuditLogActions"的表,以及该表是否在配置文件中正确地指定了位置。

    另外,还需要检查一下网络连接是否正常,以及数据库是否正常运行。

    2023-06-15 08:40:32
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    问题可能是由于MySQL解析器无法正确处理某个约束条件导致的。具体来说,当Otter尝试同步数据时,MySQL解析器可能会遇到一个无法识别的约束条件,从而导致同步失败并报告上述错误。

    为了解决这个问题,您可以尝试以下方法:

    检查表约束条件:请检查同步失败的表的约束条件,特别是外键约束条件。确保约束条件的语法正确,并且它们可以正确地解析为MySQL语句。

    检查MySQL版本:请检查您使用的MySQL版本是否与Otter兼容。如果版本不兼容,可能会导致解析错误或其他问题。尝试更新MySQL版本或Otter版本以解决问题。

    检查Otter配置:请检查您的Otter配置,确保它已正确设置,并且可以正确处理MySQL解析器解析的约束条件。您可以尝试重新配置Otter,以确保它已正确设置。

    检查MySQL解析器:请检查您的MySQL解析器,确保它已正确安装,并且可以正确处理约束条件。如果您使用的是自定义的MySQL解析器,请确保它已正确设置,并且可以正确解析约束条件。

    2023-06-15 08:06:23
    赞同 展开评论 打赏
  • 根据日志,可以看出同步出现了问题,原因是找不到数据库 Tect_CC.AbpAuditLogActions,需要检查一下该数据库是否存在。如果数据库不存在,则需要创建该数据库并重新配置 canal.instance.defaultDatabaseName,如果数据库存在,则需要检查该数据库中是否存在表 Tect_CC.AbpAuditLogActions。同时,也需要检查一下 MySQL 主库和从库之间的网络连接是否正常,以及配置文件中的地址、用户名、密码等是否正确。如果以上都没有问题,可以尝试重启 Canal 服务。如果还是无法解决问题,可以查看更详细的日志信息,以便更好地定位和解决问题。

    2023-06-15 08:05:33
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

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