概述

把MySQL的数据迁移到SQL Server有很多种方法,有第三方工具可以实现这个功能,如阿里云的DTS,ESF Database Migration等。许多人希望使用 SQL Server Integration Services (SSIS)来实现这个过程,本文就分享一下,如何利用SSIS从 MySQL导入数据 到 SQL Server 数据库。

MySQL先决条件

必须事先安装以下软件

  • MySQL 数据库_
  • 已 安装MySQL 连接器,这将安装 MySQL ODBC 驱动程序

让我们在 MySQL 中创建一个名为 myTable 的表,其中包含一个名为 myColumn 的列,然后在表中插入一些数据:

use MySQL;
create table myTable(myColumn varchar(20));
insert into myTable(myColumn) values("John");
insert into myTable(myColumn) values("Jane");
insert into myTable(myColumn) values("Arnold");
insert into myTable(myColumn) values("Jessica");

解决方案

1、启动 SQL Server Business Intelligence Development Studio 并启动一个集成服务项目。

2、创建一个新项目并选择集成服务项目。

mysql 导出select 的数据_MySQL

3、在工具箱中,将数据流任务拖放到控制流选项卡的设计图面上。

mysql 导出select 的数据_SQL_02

4、双击设计窗格中的数据流任务。

mysql 导出select 的数据_MySQL_03

5、在 Data Flow 选项卡中,将 ADO.NET Source 和 ADO.NET Destination 拖放到设计窗格中,用绿色箭头连接这两个任务。

mysql 导出select 的数据_SQL_04

6、转到 Windows 开始菜单 | 管理工具 | 数据源 (ODBC),然后单击添加按钮。

mysql 导出select 的数据_mysql 导出select 的数据_05

7、选择 MySQL ODBC 驱动程序并按完成。请注意,此驱动程序是使用上面先决条件部分中指定的连接器安装的。

mysql 导出select 的数据_SQL_06

 

8、指定数据源名称。例如“MySQL conn”。

9、指定 TCP/IP 服务器。如果使用的机器是本地机器,它可以是 IP 或 localhost。

10、指定用户,在本例中为 root 和密码。如果您不知道用户数据库密码,请咨询 MySQL 管理员)。

11、选择 MySQL 数据库。

mysql 导出select 的数据_MySQL_07

12、恭喜!您有一个 ODBC 连接。现在让我们在 SSIS 中使用它并返回 SSIS 项目。

13、双击 ADO Net Source 并按下新按钮。

mysql 导出select 的数据_SQL_08

14、再次按新按钮以添加连接。

mysql 导出select 的数据_MySQL_09

15、这很重要,在提供程序中,选择 .NET Providers\ODBC Data Provider。将显示 ODBC 连接。选择在步骤 8 中创建的连接,然后按 OK。

mysql 导出select 的数据_数据库_10

 

16、在 ADO.NET 源代码编辑器中,在数据访问模式下,选择 SQL 命令。17、在 SQL 命令测试中,写入“select * from myTable”,然后按 OK。在这一步中,您将编写查询以访问在开始时创建的 MySQL 表。

mysql 导出select 的数据_数据库_11

18、双击 ADO.NET 目标任务并在连接管理器中按新建。

mysql 导出select 的数据_mysql 导出select 的数据_12

19、在配置 ADO.NET 连接管理器中,再次按新建。

mysql 导出select 的数据_SQL_13

20、在连接管理器中指定 SQL Server 实例名称(在此示例中,localhost 是一个点)并选择一个您想要导入 MySQL 数据库的数据库,然后按 OK。在此示例中使用 Adventureworks 数据库,但也可以使用任何数据库。

mysql 导出select 的数据_SQL_14

 

21、在 ADO.NET 目标编辑器中,单击使用表或视图选项中的新建。

mysql 导出select 的数据_数据库_15

22、在 Create Table 框中,使用以下代码:

create table myTable(
  myColumn nvarchar(20)
)

23、在 ADO.NET Destination Editor 中,单击 Mapping 页面并按 OK。

mysql 导出select 的数据_SQL_16

24、我们准备好了。按开始调试图标,如下所示。

mysql 导出select 的数据_MySQL_17

25、您将看到绿色的任务,这意味着任务已成功完成并具有相关的行数。

mysql 导出select 的数据_数据库_18

26、最后但同样重要的是,打开 Microsoft SQL Server Management Studio 并在使用的实例和数据库中验证新表 myTable 是否已创建,并且它是否包含指定的数据。

mysql 导出select 的数据_SQL_19