MySQL数据转移至SQL Server详解
最近有个活是mysql数据转移到sql server 2012,直接手动转工作量太大,发现网上有工具教程,则记录一下。
一.安装MySQL ODBC驱动
为MySQL安装Connector/ODBC驱动。在此需要注意的一点是Connector/ODBC驱动与MySQL Server的版本对应问题。
下载地址:https://dev.mysql.com/downloads/connector/odbc/
我下载的是:mysql-connector-odbc-8.0.16-winx64.msi
安装的时候能会提示需要 Microsoft Visual C++ 2015 Redistributable 等 ,直接微软官网下载就行。
二.创建系统DSN
DSN为ODBC定义了一个确定的数据库和必须用到的ODBC驱动程序。每个ODBC驱动程序定义为该驱动程序支持的一个数据库创建DSN需要的信息。
创建系统DSN步骤如下:
开始->设置->控制面板->管理工具->数据源(ODBC),按该流程打开ODBC数据源管理器。
切换至系统DSN选项卡,点击添加按钮。弹出创建新数据源对话框,选择MySQL ODBC 8.0 ANSI Driver驱动程序(根据版本不同,可能名称有出入),点击完成按钮。
在弹出的链接MySQL对话框中设置MySQL数据库帐号信息。
关键是Login选项卡下的几个参数。
l Data Source Name,这个根据命名规则任意命名就可以了,最终会显示于ODBC数据源管理器中系统DSN选项卡下的列表中。
l Description,对该数据源的描述,可不填写。
l Server,MySQL Server的主机名,这里填写计算机主机名或者localhost均可。
l User和Password是MySQL Server对应的用户名和密码。
l DataBase,选定该数据源所指向的数据库。在这一里必须要求前面几个参数都正确,否则会提示错误,无法选择MySQL Server中的数据库。
还有两个需要注意的参数是Connect Options选项卡下的Port和Character Set。Port用于设置MySQL Server的通信端口,默认是3306,在安装时候如果没有改动默认端口,这里可以不设置。Character Set用于设置数据库语言编码,这里选择gbk。
点击OK按钮,完成系统DSN的创建,返回到ODBC数据源管理器对话框,在系统DSN选项卡下可查看到刚建立的数据源。点击确定按钮退出。
三.创建MSSQL到MySQL的链接服务
打开SQL Server Management Studio,运行下述语句,通过前面新建的ODBC数据源建立与MySQL Server链接服务器。
EXEC master.dbo.sp_addlinkedserver @server = N'MYSQL', @srvproduct=N'MySQL', @provider=N'MSDASQL', @provstr=N'DRIVER={MySQL ODBC 8.0 ANSI Driver}; SERVER=127.0.0.1; _ DATABASE=news; USER=root; PASSWORD=root; OPTION=3'
刷新下链接服务器节点,既可以看到上述用语句创建的链接
四.利用SQL语句转移数据至MSSQL
在Microsoft SQL Server中创建新的数据库,运行如下语句,运行后就可以把MySQL 数据库 “news” 导入到 Microsoft SQL 数据库“news”中。
SELECT * INTO 数据库.dbo.表
FROM OPENQUERY (MySQL ,'select * from 数据库.表' )
例如:将MySQL数据库“news”中的article表导入到SQL Server数据库的“news”的article中
SELECT * INTO [news].dbo.article
FROM openquery(MYSQL, 'SELECT * FROM news.article')
执行结果
参考地址:https://blog.csdn.net/qq_37308779/article/details/80679358