SQLServer数据库转换成MySQL数据库

由于工作需要,系统原先的SQLServer数据库要转换成MYSQL数据库,所以这两天就一直在查阅这方面的资料。最开始,我尝试从SQLServer中导出SQL文件,然后导入到MYSQL数据库中,发现报错,大概意思就是类型不对。后来发现一篇博文,感觉靠谱,一步一步实施下去发现导入是成功了,但是有问题,下面我先将博文内容呈现(转载自:http://www.cnblogs.com/gaizai/p/3237907.html

一、背景

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

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

二、转移数据

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

(Figure1:Import)

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

(Figure2:Start a new job)

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

(Figure3:Create a New DSN)

(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,发现我们数据已经全部转移成功了;

以上是“听风吹雨”的博文。参照这个博文,我这边出现两个问题,一个是导入的数据表远远超过实际的表;第二个是有些数据表没有导入成功。在仔细阅读sqlLog出错日志文件(自己选的Log file的目录下),发现有个别数据表字段类型不对,导致导入不成功,基本上是datetime字段类型,博文中提到说(特别注意这里数据类型【Type】,这里的意思是转换目标的数据类型,但是不需要跟目标表的一样,因为这里是做为一个临时存储的数据类型,类似FindOn在SQL Server中是datetime,这里转换为MySQL的timestamp,其实MySQL目标表的数据类型是datetime,这样的设置也是可以转换成功的),但是我这里转换不成功,而后我就将所有timestamp类型的都手动改成了datetime类型。导入成功,第二个问题解决。

至于第一个问题,我发现,导入的那些表全是原先SQLServer数据库中的视图。所以在再次导入的时候,我只选择了自己需要的数据库表,切记全选要慎重。

(谨以此记录下,以备以后查找。我的SQLServer数据库版本为SQLServer2005,mysql服务器版本为5.5)

时间: 2024-10-11 17:51:53

SQLServer数据库转换成MySQL数据库的相关文章

怎样将Sqlserver数据库转成mysql数据库

手上有一个网站之前是用asp.net做的,所使用的数据库是sqlserver,现在打算用PHP+MYSQL架构.因原来的站点有一定排名,直接改版的话,会导致产生很多错误页,网站排名和收录结果要恢复过来就得很久了,且原网站里数据较多,手工转也不现实. 所以现在需要一个将MSSQL转为MYSQL的转移方案,在网上找了很多,要么很复杂,要么根本就不能用(选了几种简单的方法尝试),现在自己测试用下面的方法最简单有效. 本地环境,安装SQLserver 安装MYSQL: 1.MYSQL的工具使用navic

将SQL SERVER数据库改成MySql

格斗人网 (www.helpqy.com) 架构在阿里云上,最先想采用SQL SERVER,想大家都是微软家族的嘛.但是发现SQL SERVER需要的配置比较高,需要的银子也比较多,最后在纠结之下换成了MySql.由于整个网站基于微软的asp.net MVC架构,同时基于EF6.0,而MVC架构默认采用了SQL SERVER,这里又与code first混合在一起,所以在修改和过渡过程中还是遇到了不少问题.这个过程中参考了博客园不少前辈的文章,真是太感谢了.其中主要参考的一篇外文是:“ASP.N

C#连接Access数据库,C#连接Excel数据库,C#连接SqlServer数据库,C#连接Mysql数据库总结

大二下学期写的了,如今毕业一个月了,整理整理 额,以前写的好幼稚,只有自己明白了,网上一大堆,大概的意思说下吧 MySQL========================================= http://user.qzone.qq.com/652768664/blog/1347859952 连接mysql需要安装mysql,在mysql的C盘安装目录有一个连接 lib,将改lib添加引用用项目OK; static void Main(string[] args) { List<s

怎么将oracle的sql文件转换成mysql的sql文件

将sql文件导入PowerDesigner中的方法(将oracle sql文件转换成mysql) 将xxxxxx.sql文件的数据库结构导入powerdesigner 的方法 步骤如下: 第一步:将要导入的库的所有表的表结构(不要表数据,只要表结构)导出成一个.sql文件. 第二步:在powerdesinger里找到 File >> Reverse Engineer >> Database ,如下图 图一,选择“share the DBMS definition”然后点击确定.注意

Sqlserver 连接oracle和mysql数据库

如果需要mysql和oracle互相转化数据,可以先把mysql数据读到sqlserver的表中,然后从sqlserver 插入到oracle中. 或者相反从oracle读到sqlserver然后从sqlserver到mysql,把sqlserver作为一个中间的桥梁 通过SQL Server操作MySQL的步骤和方法 2011-07-11 17:36:01|  分类: 数据库 |  标签:sql  server  mysql  odbc  |举报|字号 订阅 下载LOFTER客户端 在多种数据

sql2005数据库转换成sql2000

第一步:在SQL2005中生成脚本文件 ①     在2005中选中要进行转换的那个数据库,鼠标“右键”选择—“属性”—“选项”:修改“兼容级别”为“SQL Server 2000 (80)”: ②     选择您要导出的数据库,鼠标“右键”—“任务”—“生成脚本”: 注意:这里要选择“为所选数据库中的所有对象编写脚本”,否则后面在SQL2000导入数据时会出现下面的错误,将导致导入数据失败!!! ③     下一步:这里的“为服务器版本编写脚本”要选择:SQL Server 2000: 填写用

学有小成-mysql数据库-01

一数据库简介 1概念 数据库中持久存储数据的介质. 计算机中的数据库,就是能够高效的组织与管理数据的介质(内存.硬盘) 2数据库的发展史 网状数据库 是指以处理记录类型为节点的网络模型来存储与管理数据的. 层次数据库 层次数据库是网状数据库之后的一种数据库,将数据组织成一种有序有向的树状结构. 关系数据库 就使用二维表模型来存储与管理数据库的. 3关系型数据库(纯理论) 关系型数据库就是使用关系模型来组织与管理数据的数据库. 关系模型就是二维表模型,而一个关系型数据库是由多个二维表及表之间的联系

MS SQL Server2000转换成MySQL

按计划今天着手进行将后台数据库从MS SQL Server2000转换成MySQL5.1.3.目的是便于发布软件的测试版本. 1. 驱动: mysql-connector-odbc-5.1.11-win32.msi.测试Win7*64, XP通过. 2. MySQL_5.1.3免安装版. 3. MSS2SQL工具软件转换SQLServer2000的表结构.一共转换了43个表. 4. MSSQLServer2000中的存储过程转换到MySQL. //To-Do 5. SQL函数的区别 (1)sel

如何查看mysql数据库的引擎/MySQL数据库引擎详解

一般情况下,mysql会默认提供多种存储引擎,你可以通过下面的查看: 看你的mysql现在已提供什么存储引擎:mysql> show engines; 看你的mysql当前默认的存储引擎:mysql> show variables like '%storage_engine%'; 你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):mysql> show create table 表名; MySQL数据库引擎详解 作为Java程序员,MySQL数据库