前言
当我们想把mysql格式的SQL文件导入到MogDB数据库时,我们可以借助navicat工具,先将SQL文件导入到mysql数据库中,再使用数据传输功能把SQL中的对象和数据直接导入到MogDB。或者使用数据传输功能将这些对象的定义和数据导出成PG格式的SQL语句,再导入到MogDB数据库中。
操作方法
Part 1:将mysql格式SQL文件(mysql.sql)导入到mysql的test数据库:
- mysql.sql 文件内容:
- CREATE TABLE `mysql` (
-
- `ID` int(11) NOT NULL COMMENT '用户ID',
-
- `Name` varchar(50) NOT NULL COMMENT '姓名',
-
- `Notes` varchar(200) DEFAULT NULL COMMENT '注释',
-
- PRIMARY KEY (`ID`)
-
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试表';
- 使用navicat工具连接mysql:
- 右键点击打开连接:
- 双击test用户,右键选择运行SQL文件:
- 选择mysql.sql文件位置,并点击开始:
- 导入成功后,点击关闭:
- 查询test数据库下已成功创建表mysql:
Part 2:从mysql的test数据库导入到MogDB数据库
方法一:将导入到test数据库的数据库对象导出到MogDB的mys数据库。
- 在navicat中连接MogDB数据库:
- 填写MogDB数据库连接信息后,点击确认:
- 右键点击打开连接:
- 菜单栏选择工具——数据传输:
- 选择正确的源数据库和目标数据库信息后,点击下一步:
- 选择要传输的数据库对象,点击下一步:
- 确认无误后,点击开始:
- 传输完成后点击关闭:
- SQL文件中的对象成功导入到MogDB数据库:
方法二:将导入到test数据库的数据库对象导出为PostgreSQL格式的SQL文件export.sql,再将export.sql文件导入到mogdb的mys1数据库。
- 菜单栏选择工具——数据传输:
- 选择正确的源数据库和导出文件格式(这里选择PostgreSQL),点击下一步:
- 选择要导出的对象,点击下一步:
- 确认无误,点击开始:
导出成功,点击关闭
- export.sql 文件内容:
- -- ------------------------------ Table structure for mysql
-
- -- ----------------------------
-
- DROP TABLE IF EXISTS "test"."mysql";
-
- CREATE TABLE "test"."mysql" (
-
- "ID" int4 NOT NULL,
-
- "Name" varchar(50) NOT NULL,
-
- "Notes" varchar(200)
-
- )
- ;
-
- COMMENT ON COLUMN "test"."mysql"."ID" IS '用户ID';
-
- COMMENT ON COLUMN "test"."mysql"."Name" IS '姓名';
-
- COMMENT ON COLUMN "test"."mysql"."Notes" IS '注释';
-
- COMMENT ON TABLE "test"."mysql" IS '测试表';
-
- -- ----------------------------
-
- -- Records of mysql
-
- -- ----------------------------
-
- BEGIN;
-
- COMMIT;
-
- -- ----------------------------
-
- -- Primary Key structure for table mysql
-
- -- ----------------------------
-
- ALTER TABLE "test"."mysql" ADD PRIMARY KEY ("ID");
- 打开MogDB,右键点击mysql数据库选择运行SQL文件,将export.sql文件导入:
- 确认无误,点击开始。
此时要注意,MogDB中mysql数据库下要存在与导出数据库同名的schema(也就是test),并且导入用户要是test模式的拥有者。
- 导入成功,点击关闭:
- 在MogDB的mysql数据库的test模式下导入了表mysql:
关于作者
崔欣,云和恩墨技术顾问,Oracle 11g OCM。中国DBA联盟成员,拥有OCM、PGCE、OGCA 、OBCA等证书,经常在墨天轮上分享自己的学习心得和技术经验。长期服务于运营商、银行、保险等行业。主要从事Oracle数据库运维以及MogDB、openGauss、PG等开源数据库相关维护和培训工作 ;热衷于数据库运维工作,乐于分享数据库相关技术。