mysql数据库移植sqlserver数据库

别来无恙 提交于 2019-11-27 14:42:21

    今天和大家分享一下如何将自己的mysql数据库移植到sqlserver数据库中来。具体的做法如下:

    1、首先,确保自己的电脑中安装了mysql数据库和sqlserver数据库。

    2、安装MySQL ODBC驱动:为MySQL安装Connector/ODBC驱动。在此需要注意的一点是Connector/ODBC驱动与MySQL Server的版本对应问题,如果自己电脑中已经存在该odbc驱动即可不必按照。

    3、创建系统DSN创建系统DSN步骤如下:开始->设置->控制面板->管理工具->数据源(ODBC),按该流程打开ODBC数据眼管理器,如图所示。

4、切换至系统DSN选项卡,点击添加按钮。弹出创建新数据源对话框,选择MySQL ODBC 5.3 AANSI Driver驱动程序,点击完成按钮。(注意说明:选择自己电脑中安装的odbc版本,不一定是我的这个版本)

5、在弹出的配置框中填写数据源名、MySQL服务器IP、端口、用户名和密码,点击[ok],ODBC数据源创建成功。(说明一下相关的字段说明:第一个是自定义的dns的名称,第二个是相关的描述可以不写,第三个是服务器的地址,是本地服务器就写localhost或者127.0.0.1或者本地的电脑名称;如果是远程服务器就需要写对应的地址,3306是默认的mysql端口,一般不用更改,下面的三个分别是mysql数据库的登录名、登录密码以及需要创建数据源的mysql数据库中的数据库名称 。输入完成后上面的内容,点击test来测试一下是否连接成功,出现图中即表示成功。)

6、建立链接服务器

建立链接服务器有两种方式,可以通过SQL Server Management Studio中的向导建立,也可以直接使用SQL语句建立。

6.1 使用向导建立链接服务器

在SQL Server Management Studio中连接上SQL Server,然后在[服务器对象]->[链接服务器]上点击右键,选择[新建连接服务器(N)…]。

在[链接服务器]框中填写自定义的链接服务器名称,[服务器类型]选择[其他数据源],[访问接口]选择”Microsoft OLE DB Provider for ODBC Drivers”,[产品名称]跟链接服务器名称填写成一样的,[数据源]填写刚才创建的ODBC数据源,点击[确定],链接服务器创建成功。

其实,也可以不建立ODBC数据源,直接建立链接服务器的,只要把[数据源]留空,而在[访问接口字符串]中填写链接字符串

“Driver={MySQL ODBC 5.1 Driver};Server=192.168.0.21;Database=test; User=root;Password=rootPassword;Option=3;”即可。如下图:

6.2 使用SQL语句创建链接服务器

可以使用以下SQL语句创建链接服务器,其中使用了ODBC数据源:

EXEC master.dbo.sp_addlinkedserver

@server = N'TestMySQL', --链接服务器名

@srvproduct = N'TestMySQL', --产品名称

@provider = N'MSDASQL', --访问接口

@datasrc = N'TestServer' --数据源名称

 

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TestMySQL',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL

GO

 

也可以使用以下SQL语句创建链接服务器,其中没有使用ODBC数据源,使用的是访问接口字符串:

EXEC master.dbo.sp_addlinkedserver

@server = N'TestMySQL', --链接服务器名

@srvproduct = N'TestMySQL', --产品名称

@provider = N'MSDASQL', --访问接口

@provstr = N'Driver={MySQL ODBC 5.1 Driver};Server=192.168.0.21;Database=test; User=root;Password=rootPassword;Option=3;' --访问接口字符串

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'TestMySQL',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL

GO

7、通过上面的步骤已经可以访问mysql的数据库了,现在通过sql语句将mysql复制过来,具体的操作如下代码所示:

SELECT * INTO 自己的在sql中新建一个对应的数据库的数据库名称.dbo.对应的数据库的数据库表名称
FROM openquery(建立DNS数据源所自定义的名称, 'SELECT * FROM mysql数据库的名称.mysql数据库中对应的数据表名称')
例如:
SELECT * INTO takeout.dbo.takeout_region
FROM openquery(MYSQL, 'SELECT * FROM takeout.takeout_region')

    需要将每一张表都通过该sql语句来进行复制到sqlserver数据库,记住每一张表只需要更改对应的名称即可。

8、在整个移植的过程中如果出现7303错误,找不到对应的驱动或者数据源,或者数据库结构不一致的时候,可能创建的系统DNS版本不一致造成的问题,对于这种问题可以通过换成32位的数据源或者换成64位的数据源来进行操作一次,即可解决该问题。

9、还有一些其他的相为:http://ask.csdn.net/questions/157488 ;http://blog.csdn.net/xiaoliouc/article/details/13511999


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!