tidb 4.0.9 mydumper 导出一个表报错

tidb 版本 4.0.9

问题:使用mydumper工具导出一个表,但是mydumper报错,使用mysqldump是可以正常导出来的,此表 在mysql数据库里通过mydumper也是可以导出来的。

/mydumper -h 127.0.0.1 -p ‘’ -u root -P 4001 -t 16 -B ruleengine -T t_rule_parameter -o /home/tidb/backup/

** (mydumper:22389): CRITICAL **: Error dumping table (xxxx.t_xxxxx) data: You have an error in your SQL syntax; check the manual that corresponds to your TiDB version for the right syntax to use line 1 column 145 near ",TABLE,COLUMN,TAG_ID,CREATE_TIME FROM ruleengine.t_rule_parameter

1 个赞

麻烦反馈下完整的导出日志,表结构 ,方便复现问题,多谢。

t_rule_parameter | CREATE TABLE t_rule_parameter (
ID int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键’,
RISK_DATA_DATA_SOURCE_ID int(32) DEFAULT NULL COMMENT ‘数据源ID !!!注意:此ID关联的是RiskData数据库中t_data_executor_data_source的主键ID!!!’,
NAME varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT ‘’ COMMENT ‘变量名称’,
DESCRIPTION varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT ‘’ COMMENT ‘变量描述’,
TYPE enum(‘BASIS’,‘DERIVATION’) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT ‘BASIS’ COMMENT ‘BASIS=基础标量,DERIVATION=衍生变量’,
SCOPE_TYPE enum(‘INPUT’,‘OUTPUT’) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT ‘INPUT’ COMMENT ‘入参=INPUT;出参=OUTPUT’,
DATA_TYPE enum(‘INTEGER’,‘STRING’,‘DATE’,‘NUMBER’,‘BOOLEAN’) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT ‘STRING’ COMMENT ‘’‘INTEGER’‘,’‘STRING’‘,’‘DATE’‘,’‘NUMBER’‘’,
DEFAULT_VALUE varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT ‘默认值’,
SCRIPT mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT ‘表达式’,
SCRIPT_LANUAGE enum(‘JS’,‘GROOVY’,‘PYTHON’,‘LUA’) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT ‘GROOVY’ COMMENT ‘脚本语言’,
IS_PROCESS tinyint(1) DEFAULT ‘0’ COMMENT ‘是否处理’,
IS_NULLABLE tinyint(1) DEFAULT ‘1’ COMMENT ‘是否允许空值’,
SCHEMA varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT ‘视图’,
TABLE varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT ‘表名’,
COLUMN varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT ‘字段’,
TAG_ID int(11) DEFAULT NULL COMMENT ‘标签ID’,
UPDATE_TIME timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘修改时间’,
CREATE_TIME timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
PRIMARY KEY (ID),
UNIQUE KEY IDX_NAME (NAME)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=660578 COMMENT=‘变量表’ |

  1. 请问您的 mydumper 使用的哪个版本?
  2. 麻烦也给一两个 insert 的数据吧,测试的即可
  3. mydumper 的日志也帮忙反馈下吧,多谢多谢。

您的列使用了,schema,table 等关键字,这个表在 tidb 看起来都没法创建成功吧。目前是使用 mydumper 从哪里导出?这个表在 v4.0.9 创建成功了吗?

嗯,这个应该是关键字,要加才能创建成功。您可能需要在导出的schema文件里手工加上 了。
另外建议还是不要使用关键字作为列名称。
https://docs.pingcap.com/zh/tidb/stable/keywords#关键字

好吧,谢谢

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。