1、背景html
因为项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,因此须要把SQL Server的数据转移到MySQL;因为涉及的表比较多,因此想在MySQL中生成对应表并导入数据;数据库
上网找了些资料,如:将ACCESS和MSSQL导入MYSQL中、MySQL Migration 实现 MSSQL 到 MySQL数据迁移,虽然不知道里面的作法是否能够成功转移,可是里面的过程比较复杂,没有去尝试,后来本身找到了方法,最重要就是简单和准确(暂时没发现明显的BUG),这里分享给你们。服务器
2、转移数据工具
我使用了MySQL的Client的工具SQLyog,这个工具的安装很简单。安装完成以后点击须要导入的目标数据库,点击右键【Import】->【Import Extenal Data】;测试
(Figure1:Import)3d
选择【Start a new job】,点击【下一步】;htm
(Figure2:Start a new job)blog
下面就是DSN的设置界面,若是你的下来列表中没有须要导出SQL Server数据库的DSN,那么须要经过【Create a New DSN】来建立一个新的DSN链接到SQL Sever;ip
(Figure3:Create a New DSN)get
(Figure4:建立新数据源)
(Figure5:选择数据源类型)
把上面的设置保存为一个local.dsn文件;
(Figure6:选择数据源保存路径)
(Figure7:选择SQL Server服务器)
(Figure8:设置SQL Server账号和密码)
(Figure9:选择SQL Server数据库)
(Figure10:测试数据源)
(Figure11:测试成功)
选中【File DSN】,在浏览中选择咱们刚刚建立好的DSN,接着填写登陆到SQL Server的账号和密码;
(Figure12:选择DSN)
下一步,选择目标MySQL服务器,填写IP地址和账号密码,而且须要选择目标数据库;
(Figure13:设置MySQL账号和密码目标数据库)
这一步相似SQL Server的导入导出功能,这里能够拷贝一个表或者使用SQL脚本过滤数据;
(Figure14:表拷贝)
上面的所有过程就是为建立SQL Server与MySQL的一个管道,接下来就是最为重要的设置SQL Server表与MySQL表之间的对应关系了;里面包括了SQL Server表字段与MySQL表字段之间的对应关系【Map】,高级选项【Advanced】,过滤【WHERE】。
(Figure15:选择表对应关系)
下图Figure16,数据源【Source】,描述【Destination】,特别注意这里数据类型【Type】,这里的意思是转换目标的数据类型,可是不须要跟目标表的同样,由于这里是作为一个临时存储的数据类型,相似FindOn在SQL Server中是datetime,这里转换为MySQL的timestamp,其实MySQL目标表的数据类型是datetime,这样的设置也是能够转换成功的。
(Figure16:表字段转换)
(Figure17:高级选项)
(Figure18:Error)
(Figure19:Log)
(Figure20:执行信息)
(Figure21:执行结果)
(Figure22:原始SQL Server的数据列表)
(Figure23:转移到MySQL的数据列表)
对比下Figure20与Figure21,发现咱们数据已经所有转移成功了;