前言
当我们想把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 文件内容:
/*
Navicat Premium Data Transfer
Source Server : mysql
Source Server Type : MySQL
Source Server Version : 80019
Source Host : localhost:3306
Source Schema : test
Target Server Type : PostgreSQL
Target Server Version : 130000
File Encoding : 65001
Date: 13/08/2021 17:25:59
*/-- ------------------------------ 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:
墨天轮原文链接:https://www.modb.pro/db/99672?sjhy(复制到浏览器或者点击“阅读原文”立即查看)
关于作者
崔欣,云和恩墨技术顾问,Oracle 11g OCM。中国DBA联盟成员,拥有OCM、PGCE、OGCA 、OBCA等证书,经常在墨天轮上分享自己的学习心得和技术经验。长期服务于运营商、银行、保险等行业。主要从事Oracle数据库运维以及MogDB、openGauss、PG等开源数据库相关维护和培训工作 ;热衷于数据库运维工作,乐于分享数据库相关技术。
END