如何把sqlserver数据迁移到mysql数据库及需要注意事项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把sqlserver数据迁移到mysql数据库及需要注意事项相关的知识,希望对你有一定的参考价值。
在项目开发中,有时由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为mysql,所以需要把SQL Server的数据迁移到MySQL。下面是小编日常整理的一种sqlserver数据库迁移的方法。一、SQL Server中常用数据类型与MySQL不同的地方
二、将SQL Server数据迁移到MySQL需要注意的一些问题
1、唯一索引的不同,sql server的唯一索引的字段只能允许存在一个null值,而mysql,一直oracle中唯一索引对应的字段都允许存在多个null值。
2、存储过程的语法存在很大的不同,存储过程的迁移是最麻烦的,需要仔细修改。
3、程序中部分写的SQL语句由于语法的不同也要相应的修改。
三、将SQL Server数据迁移到MySQL的常见方法
1、使用 SQLyog 迁移
优点
该迁移方法很简单,灵活,迁移时,可以进行字段的修改,比如在sql server中原来是datetime,然后迁移到mysql时你可以配置成timestamp;成功率很高;
缺点
迁移很慢!这是该方法最大的缺点,如果表的数据量达到几十万行,甚至几百万行,你会发现迁移起来真的很慢。明显比其他迁移方法慢很多。
2、使用 powerdesigner 和 sql server 的脚本导出功能 来迁移
(1)、该方法首先使用 powerdesigner,对sql
server数据库,进行逆向工程,得到E-R图,然后生成MySQL的建表语句。完成数据库结构的迁移;当然表结构的迁移,不使用
powerdesigner一样也是可以的。比如我将表结构导出成语句,然后手动进行修改,然后在MySQL中运行,也是一样的;
(2)、然后使用 sql server的工具 SSMS,将sql server数据库中的表的数据,导出成insert语句,每个表对应导出一个文件,然后对文件进行一些处理,然后导入到MySQL数据库中。
3、使用Oracle MySQL Server 官方的 workbeach 工具进行迁移
(1)、在workbench 连接sql server时,用户需要有 view any database 的权限。不然workbench无法访问sql server的表结构的元数据,从而无法进行迁移。
(2)、还有使用 Navicat 来进行迁移的方法,方法和 SQLyog 是类似的。 参考技术A 如何迁移 Navicat 到新的计算机
Navicat是一套数据库管理工具,Navicat Premium 结合了其它Navicat成员的功能,支持单一程序同时连接到MySQL、MariaDB、SQL Server、SQLite、Oracle和PostgreSQL数据库。Navicat Premium可满足现今数据库管理系统的使用功能,包括存储过程、事件、触发器、函数、视图等。
迁移Navicat到新的计算机的步骤:
1. 选择文件->导出连接。导出的文件(.ncx)包含了全部连接设置内容。
2. 备份已导出的文件(.ncx)。
3. 在Navicat,选择帮助->注册,并点击“取消激活”来在线取消激活Navicat注册码。
4. 在现有的计算机解除安装Navicat。
5. 在新的计算机重新安装Navicat。
6. 在新的计算机中,打开Navicat,选择文件->导入连接。
当创建一个新的连接,Navicat将在设置位置创建一个子文件夹。大多数文件都保存在该子文件夹,右击选择属性->打开文件位置可查找路径。
此外,全部已保存的设置文件会保存在Profiles文件夹,选择工具->选项->其他->文件位置,即可查找存储路径。
以上教程由Navicat官网提供,仅供参考
MySQL数据迁移到SQL Server
数据迁移的工具有很多,基本SSMA团队已经考虑到其他数据库到SQL Server迁移的需求了,所以已经开发了相关的迁移工具来支持。
此博客主要介绍MySQL到SQL Server数据迁移的工具:SQL Server Migration Assistant for MySQL 的使用.
从上面链接的官网下载安装.
需要注意的是你需要选择迁移到的SQL Server数据库的版本,目前支持:SQL Azure,SQL Server 2005,SQL Server2008,SQL Server 2012,SQL Server2014,根据实际需要选择你要迁移到目标数据库的版本。
上面的是源:MySql,下面的是目标:SQL Server
此报告会分析当前需要迁移的数据库中的所有表结构并会生成一个可行性报告
生成的报告如下:分析需要转换的对象,表,数据库有多少个,是否存在不可转换的对象等信息,如有检查错误会下下面输出
迁移分两步:1.转换数据库结构,2.迁移数据
否则转换的数据库结构是不会到目标数据库的
点击同步之后同样会有一个同步的报告:
点击ok之后就真正执行同步操作会将你转换完的结构同步到目标数据库上,创建对应的表及其他对象。同步操作完成之后会有如下输出:
我们可以看到右边有几个tab页,当前选中的是Type Map,会列出源数据库和目标数据库的字段类型的mapping关系
因为不同数据库之间的数据类型还是有所差异的。
点击Migrate Data之后需要再次确认输入源数据库密码和目标数据库密码,然后开始真正的数据的迁移。
执行之后就等待完成就好,同样会生成一个数据迁移完成的报告。至此数据迁移就可以完成了。
很简单的工具吧,因为是微软的啊,哈哈,作为微软的忠粉,对微软的产品表示使用起来还是很人性化的。
以上是关于如何把sqlserver数据迁移到mysql数据库及需要注意事项的主要内容,如果未能解决你的问题,请参考以下文章
如何把sqlserver数据迁移到mysql数据库及需要注意事项
如何把sqlserver数据迁移到mysql数据库及需要注意事项