SQL Server可以从低版本备份还原到高版本,但从高版本会出问题要用专门的工具,备份时要删除默认的位置否则选位置时会有两个备份位置,
用sql脚本在SQL Server和mysql相互导数据会出错最后只有空表,请使用下面的专门工具可以成功导出和导入数据

SQL Server 迁移数据到MySQL

一、背景

由于项目开始时候使用的数据库是SQL Server2008,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据转移到MySQL;由于涉及的表比较多,所以想在MySQL中生成对应表并导入数据;

上网找了些资料,如:将ACCESS和MSSQL导入MYSQL中、MySQL Migration 实现 MSSQL 到 MySQL数据迁移,虽然不知道里面的做法是否可以成功转移,但是里面的过程比较复杂,没有去尝试,后来自己找到了方法,最重要就是简单和准确(暂时没发现明显的BUG),这里分享给大家。

二、转移数据

我使用了MySQL的Client的工具SQLyog,这个工具的安装很简单。(软件在同一目录)
安装方法:程序安装后先不要运行SQLyog,输入注册信息
姓 名(Name):cr173
序 列 号(Code):8d8120df-a5c3-4989-8f47-5afc79c56e7c

安装完成之后点击需要导入的目标数据库,数据库菜单->【Import】->【Import Extenal Data】;

(Figure1:Import)

选择【Start a new job】,点击【下一步】;

(Figure2:Start a new job)

下面就是DSN的设置界面,需要通过【Create a New DSN】来创建一个新的DSN连接到SQL Sever;

(Figure3:Create a New DSN)
选文件数据源

(Figure4:创建新数据源)
选SQL Server

(Figure5:选择数据源类型)

把上面的设置保存为一个local.dsn文件;

(Figure6:选择数据源保存路径)

(Figure7:选择SQL Server服务器)
不能选Local要下接选择服务器的域名加数据库实例名

(Figure8:设置SQL Server帐号和密码)
选择使用网络登录ID的windowsNT验证,密码和用户会自动选择不用输

(Figure9:选择SQL Server数据库)
选择要导出的数据库

(Figure10:测试数据源)

(Figure11:测试成功)

选中【File DSN】,在浏览中选择我们刚刚创建好的DSN,用户名和密码不用填,如果是SQL登录则要填写登录到SQL Server的帐号和密码;

(Figure12:选择DSN)

下一步,选择目标MySQL服务器,填写IP地址和帐号密码,并且需要选择目标数据库;

(Figure13:设置MySQL帐号和密码目标数据库)

这一步类似SQL Server的导入导出功能,这里可以拷贝一个表或者使用SQL脚本过滤数据;

(Figure14:表拷贝)

上面的全部过程就是为创建SQL Server与MySQL的一个管道,接下来就是最为重要的设置SQL Server表与MySQL表之间的对应关系了;
这里选择要复制的表,不要全选那样会包含所有数据库实例的表,可以直接开始导入了,下面可以不看。里面包括了SQL Server表字段与MySQL表字段之间的对应关系【Map】,高级选项【Advanced】,过滤【WHERE】。

(Figure15:选择表对应关系)

下图Figure16,数据源【Source】,描述【Destination】,特别注意这里数据类型【Type】,这里的意思是转换目标的数据类型,但是不需要跟目标表的一样,因为这里是做为一个临时存储的数据类型,类似FindOn在SQL Server中是datetime,这里转换为MySQL的timestamp,其实MySQL目标表的数据类型是datetime,这样的设置也是可以转换成功的。

(Figure16:表字段转换)

(Figure17:高级选项)

(Figure18:Error)

(Figure19:Log)

(Figure20:执行信息)

(Figure21:执行结果)

(Figure22:原始SQL Server的数据列表)

(Figure23:转移到MySQL的数据列表)

对比下Figure20与Figure21,发现我们数据已经全部转移成功了;

第二种将MSSQL数据导入到MYSQL操作方法 (实验最终未成功)

1、安装Mysql数据源:下载Mysql数据源(mysql-connector-odbc-5.1.11-win64.msi),并点击安装;
2、在Mysql管理器中建立数据库,如mytest,并设置与MSSQL一样字符集(如整理 字符集为 gbk_chinese_ci);
3、创建数据源:点击“控制面板”-》 “管理工具” -》“数据源”,在打开的面板中选择“用户DSN”选项卡;点击添加按钮,在弹出的窗口中选择“MySQL ODBC 5.1 Driver”,点击“完成”,在弹出的窗口中输入连 接参数:mssql要导出的数据库名称,在TCP/IP栏中输入mysql所在的IP地址(本机填写127.0.0.1), 不要管named pipe,输入相关信息:用户名,密码,和数据库名字,点击TEST测试查看连接是否成功;
如果报错MSSQL的服务器不允许连接,其实是对方mysql不允许连接,要给权限
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
4、导出数据:打开MSSQL企业管理器,选中要导出的数据库,右击选择“所有任务”-》“导出数据”,按操作提示,点击下一步,在[选择目的]步骤时,选择“MYSQL ODBC 5.1 Driver”没有就选择.net for odbc,选中用户/系统DSN(M)
要手动输入dsn和驱动的名字再点击connectingString自动会添加名字,并选择 刚才创建的数据源,按操作提示点击下一步

6.如果提示软件驱动体系不同可能是驱动32位和64位装错了,如果装了还不行再装新版本,如果报错不能安装请安装Microsoft Visual C++,再不行重启,最后不行只能换一种方式了,有可能是驱动跟不上新版本 的mysql了

MSSQL2008、2005数据库导入或从导出mysql和相互转换相关推荐

  1. 2005数据库导入mysql没有主键_MSSQL2005数据库导入导出+带主键、自动增量、关系图、表架构等...

    MSSQL2005数据库导入导出+带主键.自动增量.关系图.表架构等 关键词:mssql2005.导入导出 1.在本地安装Mssql Server 2005 2.接着安装SQLServer2005_X ...

  2. mysql数据库 导入excel_如何在MySQL数据库中导入excel文件内的数据 详细始末

    在开发项目的时候通常需要使用数据库,数据库Database是用来存储和管理数据的仓库.下面,我们以MySQL数据库为例来看看如何在数据库中导入excel文件内的数据吧. 操作方法 01 MySQL 打 ...

  3. 2005数据库导入mysql没有主键_mysql数据库详解(续二)

    mysql数据库登陆问题解决汇总 首先需要说明一下,MYSQL数据库登陆的方式,通常就是本地登陆(localhost)和远程登陆,那么这里在深入地了解一部localhost和127.0.0.1的区别是 ...

  4. shell脚本批量导出MYSQL数据库日志/按照最近N天的形式导出二进制日志[连载之构建百万访问量电子商务网站]...

    shell脚本批量导出MYSQL数据库日志/自动本地导出MYSQL二进制日志,按天备份[连载之构建百万访问量电子商务网站] 出处:http://jimmyli.blog.51cto.com/我站在巨人 ...

  5. mysql 导出中间 数据_MYSQL数据库之间的数据导出与导入

    源数据库地址: 172.16.1.7 目标数据库地址: 172.16.1.51 步骤: (1) 进入172.16.1.7服务器,登录mysql数据库 mysqldump -uusername -ppa ...

  6. mysql数据库导出_MySQL数据库导入导出详解[转发]

    1. 概述 MySQL数据库的导入,有两种方法: 1) 先导出数据库SQL脚本,再导入: 2) 直接拷贝数据库目录和文件. 在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况 ...

  7. mysql数据库导出最大值_4.6 MySQL数据库导入与导出攻略

    4.6 MySQL数据库导入与导出攻略 4.6.1 Linux下MySQL数据库导入与导出 1. MySQL数据库的导出命令参数 主要是通过两个mysql和mysqldump命令来执行 (1) MyS ...

  8. 远程linux服务器mysql数据库导入和导出.sql文件

    大部分情况本地开发环境为windows,部署的服务器为Linux,本地数据库导出.sql文件后需要远程导入服务器,具体如下. 首先连接服务器,即服务器ip,协议,端口,用户名及密码,可以通过ftp客户 ...

  9. mysqldump导入导出mysql数据库

    mysqldump导入导出mysql数据库 mysqldump导入导出mysql数据库 2011-02-21 16:33 数据库的基本导入\导出的命令 是 mysqldump 和 source 在li ...

最新文章

  1. VTK:投影点用法实战
  2. 基于MATLAB的信号与系统实验指导,《信号与系统及MATLAB实现》实验指导书
  3. [渝粤教育] 西南石油大学 建设法规 参考 资料
  4. 程序员必读的涨薪指南
  5. @程序员,物联网发展的三大技术方向
  6. QEMU, KVM, QEMU-KVM 和 Goldfish
  7. Jenkins 2.x版本的节点配置选项更新
  8. 约瑟夫环-单向循环链表
  9. ajax异步数据加载
  10. atom markdown转换PDF 解决AssertionError: html-pdf: Failed to load PhantomJS module
  11. python chardet库的函数用法
  12. APP一键登录测试点
  13. 如何提高计算机网络速度,如何提高电脑网速?
  14. 一位瑞典程序员的创业感悟
  15. STM32正点原子和野火程序移植
  16. android底部蒙版,Android实现蒙板效果
  17. linux设置法语键盘布局,法语键盘布局图.doc
  18. 打了两分钟国际长途,我又得给手机充话费了
  19. 【模电实验】【精简版】【验证性实验——两级阻容耦合负反馈放大器实验】
  20. hexo安装链接转拼音出现的问题

热门文章

  1. Android三指截屏实现,一个简单的三指截屏功能实现
  2. 万字长文,深度分析 c++的前景
  3. 最荐一本好的网页设计的电子书!!!
  4. php mysql中文排序失效解决方法convert(name USING gbk)
  5. win7电脑关机后鼠标灯还在亮怎么解决
  6. 服务器安装系统sles系统,SuSe操作系统安装
  7. 连连已支持美国社交电商Top平台Passfeed收款!
  8. iot智能家居常见协议和流程
  9. Android的UI美化
  10. c++监听键盘, C++模拟键盘输入