数据库迁移大总结。。(sqlserver2000迁移到-2008-mysql5.0)

 

 头儿给我一个.MDF和.LDF文件,是sqlserver2000的,让迁移到mysql5.0上面。

由于早期mysql和sqlserver是合作关系的,但是想着,估计很简单。由于之前接触过2008,所以,我下载安装了一个sqlserver2008 express版本(下载这点不再叙述),之后,

右键“数据库”选项,有一个“附加”,弹出如下图:

点击“添加”按钮,找到你的文件附加即可。

 

然后就是从我现有的sqlserver2008转向mysql5.0,采用的软件是Powerdesigner,于是下载了这个软件,下载地址:

ftp://210.51.180.252/bbs/tp05/computer/db/Sybase.PowerDesigner.15.0%5Bwww.TopSage.com%5D.zip,如果读者下载不了,可以邮件给我,我传给你。然后按照【破解包里面有pdflm15.dll,license.lic两个文件,那个dll文件必须覆盖。1,必须进行覆盖操作,就是把pdflm15.dll文件复制到安装文件夹里面,之后打开PD;
2、进入PD,打开Tools -> License Parameters..3、选择Standalone Seat - Local License4、导入license.lic便可】将Powerdesigner15做成正版。

感谢作者:【出自博客园深蓝居,转载请注明作者出处】转移过程一直在参考他的文档http://studyzy.cnblogs.com/,大部分文档如下(图片是Powerdesigner15的图片):

如何将数据库从SQL Server迁移到MySQL(Powerdesigner15界面)

一、迁移Database Schema。

首先使用Sybase Powerdesigner的逆向工程功能,逆向出SQL Server数据库的物理模型。具体操作是在Powerdesigner中选择“File”,“Reverse Engine”再选择Database,将DBMS选择为SQL Server,如图:

然后选择数据源,也就是要具体连接到的SQL Server数据库服务器,然后选择要逆向的数据库名,比如选中“WSS_Content_80”如图所示:

注意,在这个步骤之前,你需要配置odbc数据源,因为它是靠数据源进行操作的(我的博客里面有一篇关于odbc的配置的,很简单),之后,点击那个小数据库的图标

,出现你配置的odbc数据源,如我的界面:

把需要填写的id,password等信息填入,点击“connect”,连接正常的话出现:

单击确定“ok”即可生成物理模型图:

 

然后单击“Database”菜单下的Change Current DBMS修改当前的DBMS,改为MySQL 5.0,

单击确定后即可生成MySQL的物理模型 然后单击“Database”菜单下的“Generate Database”生成数据库脚本文件。

 

接下来是手工修改下生成的脚本的内容。由于我用的软件是notpad++,现用我的情况说下我的大致的变更步骤:

将其中的dbo.全部替换成空,

将create user这样的语句删除掉。

如果有些字符在MySQL中是关键字,那么必须使用“`”(键盘上数字1左边那个符合)符合框起来。

加上MySQL所需要的存储引擎比如每个建表语句后跟上:

ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;

将生成的脚本在MySQL中去运行一次即可创建数据库。

如果datetime问题的话,CAST(0x00009EEF00000000 AS DateTime),这个需要采用notpad++的正则表达式了,(我博客中有一篇关于正则表达式的,可以看看,我默认把时间全部修改成了一个固定时间“2010-01-01”)

 

 

二、迁移数据内容

数据内容只能通过生成INSERT语句的方式来做。

首先使用SSMS的“生成脚本”功能(在数据库上右键,选择“任务”“生成脚本”选项),可以为SQL Server数据库中的数据生成插入脚本。

首先选择要迁移数据的表,这里我们全选所有的表:

然后单击下一步,选择自己的要倒出来的数据库,直接下一步,如图:

剩下的这些选项很关键,默认值如图,但是我们需要修改:

因为我们只要数据,只要insert语句,所以可以选(只要数据即可,其他的可以根据自己想法选择true或者false):

然后“确定”再下一步下一步即可生成INSERT脚本文件。

修改生成的脚本文件,主要有以下几项修改:

 

使用批量替换的方式去掉[ ]这是SQL Server的符合,在MySQL中不用这个。使用查找替换,分次去掉“【” 和“】”,

使用批量替换的方式去掉dbo.,

有些单词在MySQL中是关键字的,那么需要使用“`”引起来。

关于Datetime类型的数据,需要手工修改下,SQL Server默认生成的是这样的语句,在MySQL中是没办法解析的:

为每一行添加一个;表示一个插入语句结束。这个分号在SQL Server中可以不需要,但是在MySQL中是必须的。简单的方法是使用高级的文本编辑器(比如Notepad++),将\r\n替换为;\r\n即可。

还有go类似的语句,也要去掉,这些看你在sqlyog里面运行的时候出现的错误的情况,然后批量操作!!!

 

注意:

倒出来的.sql文件建议不要直接拉入到sqlyog里面直接操作,因为如果相互之间的字符编码格式不一致的话就会出现各种乱码或者出现字符少,少个字母,少个单引号,少个逗号等等各种奇怪的错误,建议直接采用notpad++打开之后,全选,复制,到sqlyog里面粘贴,再运行。

最后一步,对照两个表的数据,进行核查。

 

原文章:

如何将数据库从SQL Server迁移到MySQL

一、迁移Database Schema。

首先使用Sybase Powerdesigner的逆向工程功能,逆向出SQL Server数据库的物理模型。具体操作是在Powerdesigner中选择“File”,“Reverse Engine”再选择Database,将DBMS选择为SQL Server,如图:

clip_image001[11]

然后选择数据源,也就是要具体连接到的SQL Server数据库服务器,然后选择要逆向的数据库名,比如选中“WSS_Content_80”如图所示:

clip_image002[4]

单击确定即可生成物理模型图:

clip_image004[4]

然后单击“Database”菜单下的Change Current DBMS修改当前的DBMS,改为MySQL 5.0,

clip_image005[4]

单击确定后即可生成MySQL的物理模型 然后单击“Database”菜单下的“Generate Database”生成数据库脚本文件。

接下来是手工修改下生成的脚本的内容。

将其中的dbo.全部替换成空

将create user这样的语句删除掉。

如果有些字符在MySQL中是关键字,那么必须使用“`”(键盘上数字1左边那个符合)符合框起来。

加上MySQL所需要的存储引擎比如每个建表语句后跟上:

ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;

将生成的脚本在MySQL中去运行一次即可创建数据库。

二、迁移数据内容

数据内容只能通过生成INSERT语句的方式来做。

首先使用SSMS的“生成脚本”功能(在数据库上右键,选择“任务”“生成脚本”选项),可以为SQL Server数据库中的数据生成插入脚本。

首先选择要迁移数据的表,这里我们全选所有的表:

clip_image007[4]

然后单击下一步,选择将脚本保存到新的查询窗口:

clip_image009[4]

单击“高级”选项,在高级选项窗口中选择“要编写脚本的数据的类型”为仅限数据:

clip_image010[4]

然后“确定”再下一步下一步即可生成INSERT脚本文件。

修改生成的脚本文件,主要有以下几项修改:

使用批量替换的方式去掉[ ]这是SQL Server的符合,在MySQL中不用这个。

使用批量替换的方式去掉dbo.

有些单词在MySQL中是关键字的,那么需要使用“`”引起来。

关于Datetime类型的数据,需要手工修改下,SQL Server默认生成的是这样的语句,在MySQL中是没办法解析的:

CAST(0x00009EEF00000000 AS DateTime)

为每一行添加一个;表示一个插入语句结束。这个分号在SQL Server中可以不需要,但是在MySQL中是必须的。简单的方法是使用高级的文本编辑器(比如Notepad++),将\r\n替换为;\r\n即可。

【出自 博客园深蓝居,转载请注明作者出处】

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值