开发者社区> 问答> 正文

table 'xxxxx' already exists

请教大神们,otter运行一段时间会挂起,报如下错误,各位有遇到吗?请问有哪几种原因会引起? pid:1 nid:2 exception:setl:com.alibaba.otter.node.etl.load.exception.LoadException: java.util.concurrent.ExecutionException: com.alibaba.otter.node.etl.load.exception.LoadException: com.alibaba.otter.node.etl.load.exception.LoadException: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'nhv_contact' already exists Caused by: java.util.concurrent.ExecutionException: com.alibaba.otter.node.etl.load.exception.LoadException: com.alibaba.otter.node.etl.load.exception.LoadException: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'nhv_contact' already exists at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at com.alibaba.otter.node.etl.load.loader.db.DataBatchLoader.load(DataBatchLoader.java:107) at com.alibaba.otter.node.etl.load.loader.OtterLoaderFactory.load(OtterLoaderFactory.java:50) at com.alibaba.otter.node.etl.load.LoadTask$1.run(LoadTask.java:85) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

原提问者GitHub用户 onepiece-yang

展开
收起
古拉古拉 2023-06-18 10:49:47 63 0
2 条回答
写回答
取消 提交回答
  • 随心分享,欢迎友善交流讨论:)

    根据您提供的错误信息,可以看出是在进行数据同步时出现了异常,具体是在进行数据加载时出现了问题。

    错误信息中的异常信息为:com.alibaba.otter.node.etl.load.exception.LoadException: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'nhv_contact' already exists,说明在加载数据时,发现表 nhv_contact 已经存在,导致加载失败。

    根据这个错误信息,我们可以初步判断可能是以下几个原因导致的:

    数据库中已经存在相同名称的表,导致数据加载失败; Otter 同步任务设置有误,导致数据加载时出现异常; 数据库连接出现异常,导致无法进行数据加载。 在排除以上问题之后,您可以继续观察 Otter 运行的日志,查看是否有其他异常信息或者错误提示,以便进一步排查问题。

    针对这个问题,您可以尝试以下解决方案:

    确认目标数据库中不存在相同名称的表,如果存在,可以先删除该表,然后重新启动 Otter 进行数据同步; 检查 Otter 同步任务的配置,确保配置正确,特别是表名称和数据库连接等信息,可以尝试重新配置同步任务并启动; 检查 Otter 所连接的数据库是否正常运行,确认数据库连接没有问题,可以尝试重新连接数据库进行同步。

    2023-06-30 16:39:33
    赞同 展开评论 打赏
  • Pipeline的高级设置里面,开启 跳过ddl异常 解决问题!

    原回答者GitHub用户 onepiece-yang

    2023-06-18 11:04:09
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

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