SQL Server 数据迁移到MySQL

已为老胡 2023-04-06 PM 163℃ 0条

  一、

  由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据转移到MySQL;由于涉及的表比较多,所以想在MySQL中生成对应表并导入数据;

  上网找了些资料,虽然不知道里面的做法是否可以成功转移,但是里面的过程比较复杂,没有去尝试,后来自己找到了方法,最重要就是简单和准确(暂时没发现明显的BUG),这里分享给大家。

  二、

  我使用了MySQL的Client的工具SQLyog,这个工具的安装很简单。安装完成之后点击需要导入的目标数据库,点击右键【Import】->【Import Extenal Data】;

image.png

  选择【Start a new job】,点击【下一步】;

image.png

  下面就是DSN的设置界面,如果你的下来列表中没有需要导出SQL Server数据库的DSN,那么需要通过【Create a New DSN】来创建一个新的DSN连接到SQL Sever;

image.png

image.png

image.png

  把上面的设置保存为一个local.dsn文件;

image.png

  

image.png


image.png


image.png

 image.png


image.png

 

  选中【File DSN】,在浏览中选择我们刚刚创建好的DSN,接着填写登录到SQL Server的帐号和密码;

image.png


  下一步,选择目标MySQL服务器,填写IP地址和帐号密码,并且需要选择目标数据库;

image.png


  这一步类似SQL Server的导入导出功能,这里可以拷贝一个表或者使用SQL脚本过滤数据;

image.png


  上面的全部过程就是为创建SQL Server与MySQL的一个管道,接下来就是最为重要的设置SQL Server表与MySQL表之间的对应关系了;里面包括了SQL Server表字段与MySQL表字段之间的对应关系【Map】,高级选项【Advanced】,过滤【WHERE】。

image.png


  下图Figure16.数据源【Source】,描述【Destination】,特别注意这里数据类型【Type】,这里的意思是转换目标的数据类型,但是不需要跟目标表的一样,因为这里是做为一个临时存储的数据类型,类似FindOn在SQL Server中是datetime,这里转换为MySQL的timestamp,其实MySQL目标表的数据类型是datetime,这样的设置也是可以转换成功的。

image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


  对比下.发现我们数据已经全部转移成功了


标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~