数据导入异常:mydumper runs with error: exit status 1.

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:3.0
  • 【问题描述】:在数据迁移过程中,创建dump没问题,但日志当中有下面的信息。初步怀疑是由于demo-at(原来不是这个名字,格式是一样的)这个库名中间带了中划线,导致把中划线后面的内容当做参数了。如果是这个问题,要怎么能解决呢? Error: DB: demo-at - Could not execute query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘-at LIKE ‘test_case_node’’ at line 1

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

已经解决。直接在task-yaml中将数据库名称使用``括起来就可以了。比直接修改数据库名称影响要小

中划线等表名格式问题还可以在 mydumper 的 extra-args 中指定 -x 或者 --regex 方式处理

mydumper 的 extra-args 中指定 -x 或者 --regex 方式处理 这种方式处理更好。加后来验证没有成功。因为将当做了数据库名称的一部分,在dump时找不到表,通过query-status看状态时,是成功的,但表没有迁移过去。

目前通过 extra-args 中指定 -x 或者 --regex 方式处理之后,表能够正常迁移过去吗

可以迁移过去了。谢谢!

好的,再问下 task-yaml 中将数据库名称使用``括起来是 black-white-list 中配置的吧

是在routes里面进行添加。这种加法不行。 routes: route_rules.0: schema-pattern: “demo-test” target-schema: “``demo-test_new`”

dump 完成后在增量同步时,routes pattern 可以支持中划线的 schema 名称。

现在task-mode是all,所以必须要先将dump这一步过去。增量同步时带中划线应该是可行的,因为是解析binlog,但没有偿试

好的,有其他疑问欢迎再反馈