近期因工作须要。须要将mysql数据库迁移到sqlserver。不过数据迁移。因此相对照较简单。对于mysql迁移到sqlserver,我们须要使用到mysql odbc驱动,然后透过sqlserver链接服务器的方式来訪问mysql。详细见下文描写叙述。


一、 迁移环境

源:RHEL 6.5 + MySQL 5.6.26
目标: Windows 7 64 + SQLserver 2014

二、准备迁移环境

1、下载及安装ODBC驱动

http://dev.mysql.com/downloads/connector/odbc/

本次安装下载的文件为:mysql-connector-odbc-5.2.7-winx64.msi 安装过程略

2、配置ODBC驱动

对于mysql的訪问,我们须要配置ODBC驱动。来使得SQLserver可以识别。
打开控制面板,管理工具,数据源(ODBC)。选择System DSN选项卡,单击加入,选择MySQL ODBC 5.2 Unicode
Driver。例如以下截图:

mysql56数据迁移至mysql57 mysql数据迁移到sqlserver_MySQL

下面配置连接參数,指定数据源名称,IP地址及port号。例如以下图:

mysql56数据迁移至mysql57 mysql数据迁移到sqlserver_mysql56数据迁移至mysql57_02


加入完成后单击确定(OK)。

3、加入链接服务器

使用下面的代码加入链接服务器,注意替换对应的字符。

USE master
GO
EXEC sp_addlinkedserver @server = 'MySQL', @srvproduct='MySQL', @provider = 'MSDASQL', @datasrc = 'MySQL_SRC'
GO
EXEC sp_addlinkedsrvlogin @rmtsrvname='MySQL',@useself='false',@locallogin='sa',@rmtuser='root',@rmtpassword='mysql'
GO

4、測试链接服务器

SELECT * FROM OPENQUERY (MySQL ,'select * from testdb.tt)
id  dt
1   2016-03-18 10:48:06.0000000
2   NULL
3   NULL

二、 实施数据迁移

USE master
GO 
CREATE DATABASE material  --创建目标数据库
GO
可以使用下面语句查询须要迁移的schema下的表
SELECT * FROM OPENQUERY (MySQL ,'select * from information_schema.TABLES where table_schema=''material''' )

将全部表内容插入到SQLserver,例如以下方式
SELECT * INTO material.dbo.ic_goods FROM OPENQUERY (MySQL ,'select * from material.ic_goods');