迁移MongoDB数据到MySQL时报1286错误:未知存储引擎'MongoDB'
报错问题解决方案
根因说明
该报错核心原因是生成的建表SQL错误指定了MySQL不支持的MongoDB存储引擎,你当前是要将MongoDB数据迁移到MySQL本地存储,不需要使用MongoDB BI连接器对应的存储引擎配置。
分步解决方法
- 修正建表语句的存储引擎配置:将
ENGINE = MongoDB替换为MySQL原生支持的存储引擎,默认使用ENGINE = InnoDB即可,不需要保留MongoDB相关的引擎配置。同时注意原SQL中VARCHAR(65535)的配置不符合MySQL行长度限制,可根据业务实际字段长度调整为VARCHAR(255)或改用TEXT类型,避免触发行长度超限报错。
修改后的正确SQL示例:
CREATE TABLE IF NOT EXISTS `trainingDB`.`gradings` ( `_studentId` VARCHAR(255) NULL DEFAULT NULL COMMENT '{ \"name\": \"studentId\" }', `_sessionId` VARCHAR(255) NULL DEFAULT NULL COMMENT '{ \"name\": \"sessionId\" }') ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '{ \"collectionName\": \"gradings\" }'
- 调整迁移工具的规则配置:当前迁移工具错误继承了源端MongoDB的存储引擎属性,需要在工具的「目标端配置」板块,将默认存储引擎设置为
InnoDB,关闭「同步源端存储引擎配置」的相关开关,避免后续自动生成的SQL依然携带错误的引擎参数。 - 执行验证:先单独运行修改后的建表语句,确认建表成功后,再重新执行后续的迁移任务即可。
内容的提问来源于stack exchange,提问作者Étienne
相关产品推荐
相关产品推荐

