SQL SERVER2008数据库导入MySQL数据库

来源:互联网 发布:c语言while语句举例 编辑:程序博客网 时间:2024/05/17 22:56

开发中需要把SQL server2008的数据库导入MySQL中进行开发,在网上搜索了很多相关的资料,并成功实现了SQL server 数据库导入MySQL数据库。并作出以下总结:

1. 首先,配置SQL server2008数据库允许远程连接

单击Windows的"开始",依次选择"所有程序"、"Microsoft SQL Server 2008",然后单击“SQL Server Management Studio”,在对象资源管理器中,右击你的服务器,从快捷菜单中执行“属性”:

设置SQL Server 2008 以允许远程连接 - 私は天才です - 私は天才です(Lawrence)

2、在服务器属性窗口左侧选择“安全性”,右侧选择“SQL Server和Windows 身份验证模式”:

设置SQL Server 2008 以允许远程连接 - 私は天才です - 私は天才です(Lawrence)

3、回到对象资源管理器,在节点“安全性 → 登录名”下右击登录名“sa”,从快捷菜单中执行“属性”:

设置SQL Server 2008 以允许远程连接 - 私は天才です - 私は天才です(Lawrence)

4、首先在登录属性窗口,左侧选择"常规",右侧输入密码:

设置SQL Server 2008 以允许远程连接 - 私は天才です - 私は天才です(Lawrence)

5、然后在登录属性窗口左侧选择"状态",右侧选择"授予"和"启用":

设置SQL Server 2008 以允许远程连接 - 私は天才です - 私は天才です(Lawrence)

6、单击Windows的"开始",依次选择"所有程序"、"Microsoft SQL Server 2008"、"配置工具",然后单击"SQL Server 配置管理器",在窗口左侧选择节点"MSSQLSERVER 的协议",在右侧双击"TCP/IP":

设置SQL Server 2008 以允许远程连接 - 私は天才です - 私は天才です(Lawrence)

7:在TCP/IP属性窗口,选择“IP地址”选项卡,设置好IP地址和端口号,端口号一般是1433:

设置SQL Server 2008 以允许远程连接 - 私は天才です - 私は天才です(Lawrence)

8,然后选择窗口左侧的节点“SQL Server服务”,在右侧右击“SQL Server(MSSQLSERVER)”,从快捷菜单中执行“重新启动”:

设置SQL Server 2008 以允许远程连接 - 私は天才です - 私は天才です(Lawrence)

9、如果服务器已经启用了Windows的防火墙,那么必须添加例外,才能允许其它电脑连接此服务器的SQL Server服务。

以下内容以Windows XP和Windows Server 2003为例,如果你使用的是Windows 7/Vista或者Windows Server 2008,请参考:设置Windows Vsita/7/2008的防火墙

添加端口例外

在 Windows 防火墙中,选择"例外"选项卡,单击"添加端口",输入端口号1433,然后单击“确定”按钮:

设置SQL Server 2008 以允许远程连接 - 私は天才です - 私は天才です(Lawrence)

添加程序例外

在 Windows 防火墙中,选择"例外"选项卡,单击"添加程序",在“添加程序”窗口中,单击“浏览”,选择 “C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\sqlservr.exe” 可执行文件,然后单击“确定”按钮:

设置SQL Server 2008 以允许远程连接 - 私は天才です - 私は天才です(Lawrence)

提示:上述可执行文件路径可能会根据 SQL Server 2008 的安装位置而不同。

经过上述设置,其它电脑即可通过IP地址连接此服务器,连接方法请参考:连接 SQL Server 2008

需要特别提示的是,通过IP地址连接远程SQL Server服务器的时候,应该选择选项“允许保存密码”:

设置SQL Server 2008 以允许远程连接 - 私は天才です - 私は天才です(Lawrence)

以上内容转自:http://blog.csdn.net/yanjiaye520/article/details/8233771

本人在win7系统64位环境下进行的操作,并成功配置了SQL server允许远程连接。


一,只转换数据库(两数据库中表与数据都一样只是由sqlserver转换mysql)

想把Microsoft sql server 2008的数据导入到mysql 5.5 ,过程并没有想象的那么简单。
安装环境:
Microsoft sql server 版本:2008
mysql 版本: 5.5
操作系统版本:windows7 64位

1、SQL Server Management Studio导出的向导里,在选择导出目的数据源的时候没有发现mysql的驱动,于是安装mysql的ODBC 5.2.3:http://dev.mysql.com/downloads/connector/odbc/,因为我的操作系统是64版本,于是下载的版本也是64位的。安装完毕,并在windows7的“控制面板”—>”管理工具”—>”数据源(ODBC)” 配置mysql 的用户dsn和系统dsn 。

2、配置完dsn后,再次运行SQL Server Management Studio导出的向导,但在选择目的源的仍然没有关mysql的odbc数据源查资料有种说法是sql server 从 2005版本开始不再支持odbc的数据源了,不过我没查到官方的解释。使用.NET Framework Data Provider for ODBC 方式报错:未发现数据源名称并且未指定默认的驱动程序,原因不明。

3、于是尝试是不是可以通过mysql的客户端Navicat for MySQL来导入数据。打开Navicat for MySQL,新建一个空库,然后选择“表”,右键选择“导入向导”,选择导入的数据格式为“odbc”,然后选择数据源“SQL server Native Client 10.0”,输入数据库服务器ip地址、用户名、密码,选择数据库,连接成功后,选择要导入的表。我导入后,检查mysql数据后发现,去掉了主键属性,需要手动添加。基本算是导入成功了。

二、转移数据

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

clip_image002jquery1707711972797190897="1" />

(Figure1:Import)

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

clip_image003

(Figure2:Start a new job)

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

clip_image004

(Figure3:Create a New DSN)

clip_image005

(Figure4:创建新数据源)

clip_image006

(Figure5:选择数据源类型)

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

clip_image007

(Figure6:选择数据源保存路径)

clip_image008

(Figure7:选择SQL Server服务器)

clip_image009

(Figure8:设置SQL Server帐号和密码)

clip_image010

(Figure9:选择SQL Server数据库)

clip_image011

(Figure10:测试数据源)

clip_image012

(Figure11:测试成功)

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

clip_image013

(Figure12:选择DSN)

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

clip_image014

(Figure13:设置MySQL帐号和密码目标数据库)

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

clip_image015

(Figure14:表拷贝)

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

clip_image016

(Figure15:选择表对应关系)

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

clip_image018

(Figure16:表字段转换)

clip_image019

(Figure17:高级选项)

clip_image020

(Figure18:Error)

clip_image021

(Figure19:Log)

clip_image022

(Figure20:执行信息)

clip_image023

(Figure21:执行结果)

clip_image024

(Figure22:原始SQL Server的数据列表)

clip_image025

(Figure23:转移到MySQL的数据列表)

对比下Figure20与Figure21,发现我们数据已经全部转移成功了;


0 0