最近有个活是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

MySQL数据转移至SQL Server详解的更多相关文章

  1. MySQL5.7数据转移至SQL Server详解

    本文链接:https://blog.csdn.net/qq_37308779/article/details/80679358一.安装MySQL ODBC驱动为MySQL安装Connector/ODB ...

  2. 【转】MySQL用户管理及SQL语句详解

    [转]MySQL用户管理及SQL语句详解 1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysq ...

  3. MySQL数据迁移到SQL Server

    数据迁移的工具有很多,基本SSMA团队已经考虑到其他数据库到SQL Server迁移的需求了,所以已经开发了相关的迁移工具来支持. 此博客主要介绍MySQL到SQL Server数据迁移的工具:SQL ...

  4. MySQL用户管理及SQL语句详解

    1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysql.user; +--------+--- ...

  5. 【记录】ELK之logstash同步mysql数据到Elasticsearch ,配置文件详解

    本文出处:https://my.oschina.net/xiaowangqiongyou/blog/1812708#comments 截取部分内容以便学习 input { jdbc { # mysql ...

  6. MySQL--将MySQL数据导入到SQL Server

    随着时代的进步,社会的发展,各种技术层出不穷五花八门乱七八糟数不胜数(写作文呢!!!) 不扯废话,简单而言,很多公司都会同时使用多种数据库,因此数据在不同数据库之间导入导出就成为一个让人蛋疼的问题,对 ...

  7. MYSQL之数据库初识、安装详解、sql语句基本操作

    目录 MYSQL之数据库初识及安装详解 1.什么是数据库? 1.什么是数据?(data) 2.什么是数据库?(databases,简称DB) 2.为什要用数据库? 3.什么是数据库管理系统?(Data ...

  8. MySQL之SQL优化详解(二)

    目录 MySQL之SQL优化详解(二) 1. SQL的执行顺序 1.1 手写顺序 1.2 机读顺序 2. 七种join 3. 索引 3.1 索引初探 3.2 索引分类 3.3 建与不建 4. 性能分析 ...

  9. mysql用户授权、数据库权限管理、sql语法详解

    mysql用户授权.数据库权限管理.sql语法详解 —— NiceCui 某个数据库所有的权限 ALL 后面+ PRIVILEGES SQL 某个数据库 特定的权限SQL mysql 授权语法 SQL ...

随机推荐

  1. C#断点调试时属性get块逻辑执行多次

    上面的例中,当打断点调试时,断点断住时, Attr1属性的get块就会执行一次. 两个断点加在逻辑中对Attr1的访问,最后发现CTest get Attr1.打印了3次. 得到的结论是:多余的2次打 ...

  2. goodbye 2018, hello 2019

    纵使不愿意,终究还是到了岁末. 2018 ​ 即将过去的一年,已经完成的事情自己做得不足.年初计划要做的几件事情都做了,感觉没有尽力去做好. 工作 ​ 16年毕业之后到今年,算是真正意义上完成从学生时 ...

  3. echarts 配置

    堆叠柱状图, 只要保证 stack 属性相同,就强制画成一列 这就是切割线

  4. 类String 常用方法

    字符串当中的常用方法之比较相关的方法 public boolean equals (object obj):将此字符串与指定的对象进行比较(只有参数是字符串并且内容相同才会返回true) public ...

  5. JMC监控(Windows上远程连接监控Linux服务器的JVM)

    Windows上远程连接监控Linux服务器的JVM:1.Linux服务器上配置:在Tomcat的tomcat-wms/bin/catalina.sh中添加CATALINA_OPTS="-X ...

  6. 转:eclipse 设置Java快捷键补全

    1.打开Eclipse,点击" Window - Preferences"; 2. 在目录树上选择"Java——Editor——Content Assist", ...

  7. Spring Boot(二):数据库操作

    本文主要讲解如何通过spring boot来访问数据库,本文会演示三种方式来访问数据库,第一种是JdbcTemplate,第二种是JPA,第三种是Mybatis.之前已经提到过,本系列会以一个博客系统 ...

  8. Linux学习之路4——文件IO打开、创建、读写操作

    1.使用man 2 open.man 2 creat.man 2 write.man 2 read命令获取头文件 语法: int open(const char *pathname, int flag ...

  9. 初始ajax技术

    一.AJAX是啥? 1.页面无需刷新,异步请求. 2.为什么使用ajax? 原因: 1传统模式  需要将请求发送到服务器,服务器经过业务处理,返回一个页面给客户端.这样做,会很浪费资源. 2.ajax ...

  10. Jetson TX1 compile pytorch issues

    1. c++: internal compiler error: Killed (program cc1plus) reason: memory out, need swapfile 2. NCCL ...