sql server导入mysql,使用工具SQLyog

概述

需要将sql server的数据导入到mysql中,由于2种数据库存在各种差异,比如表字段类型就有很多不同,因此需要工具来实现。

这里使用SQLyog来实现。

 

SQLyog安装

安装过程参考文档:https://blog.csdn.net/Sunshine_liang1/article/details/84400820

注意:版本不能太低,必须要有导入外部数据才可以。

 

ODBC数据源

由于SQLyog只能连接到mysql,它不能连接sql server,因此连接sql server的工作,需要由odbc来进行连接。

以windows 11为例:

点击左下角的windows图标,输入odbc

 就可以看到搜索结果,点击64位的

 点击添加

 选择sql server

 输入信息

 选择密码登录,输入账号和密码

 选择数据库

 点击完成

 

SQLyog数据导入

新建mysql连接

创建一个空库,也就是要传输的数据库名

CREATE DATABASE AdventureWorksDW2014 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

导入外部数据

点击导入外部数据

下一步

 选择系统dsn,输入sql server的用户名和密码

 选择mysql数据库

选择mysql数据库

 从源拷贝

 勾选第一个表,点击右边的三个点

 点击编辑sql

这里会显示创建SQL表语句

 将这段sql语句复制下来,然后手动在myql中运行,

CREATE TABLE `AdventureWorksDW2014`.`AdventureWorksDWBuildVersion`(
		`DBVersion` varchar(50)  NULL, 
		`VersionDate` timestamp(6)  NULL
	);

 

注意:SQLyog不会自动在目标数据库中创建表,创建的表的动作,需要手动完成才可以。

由于sql server和mysql表的字段存在差异,因此软件会自动生成与之匹配的创建SQL表语句

但是生成的创建SQL表语句并不是100%准确,我验证了一下,准确率在99%,准确率还是很高的。

 

务必勾选外键检查,它会帮你检查外键关联,自动调整传输表顺序,父关联表,会优先导入。

 点击下一步

 点击下一步

 提示导入完成

 整个传输过程完成

 注意:上面只是演示了一张表,其实可以选择多个表,进行一次性传输,但前提是目标库中已经创建好表结构,就可以批量传输了。

传输过程是单进程的,一个表一个表的传,一条条数据插入,所以传输速度会比较慢。

如果sql server mdf文件在200m左右,传输需要花费30分钟左右。

 

验证

打开数据表,查看数据

 

posted @ 2024-08-24 17:14  肖祥  阅读(92)  评论(0编辑  收藏  举报