MySql的数据如何导入到Sql Server数据库中?

时间:2023-02-04 06:39:28


本文咱讨论的重点是如何将MySql数据导入到Sql Server数据库中,所以就需要机器上同时安装了MySql和Sql Server两种数据库。


MySql的数据如何导入到Sql Server数据库中?


当我们拿到MySql数据文件时,首先在MySql数据库下建立一个新的数据库,随便取名为"dapingtai",将sql文件拖入查询窗口会直接打开该文件,然后执行就会得到sql文件中的想要的表接口和数据,但是当sql文件比较大时,如上图的bang-region-dump-160927.sql是102M大小的,直接拖入查询窗口就会出现一个警告框


MySql的数据如何导入到Sql Server数据库中?


警告框告诉我们这个文件比较大,并提供了“打开”和“运行sql脚本”两个操作选项。这里有一个小坑(直接点击“Run SQL Script”会出现一个错误,如下图),我们还是先“Open”,在执行吧。


MySql的数据如何导入到Sql Server数据库中?

成功执行上述两文件,会得到一个名为“dapingtai”的MySql数据库

MySql的数据如何导入到Sql Server数据库中?


接下来就开始我们MySql数据库到Sql Server数据的转化工作。。。


(一)为 MySQL安装ODBC驱动

1. 下载MySQL ODBC Connector,下载http://dev.mysql.com/downloads/connector

2. 从控制面板-管理工具,打开你的 数据源(ODBC),选 系统DNS ,点添加。


MySql的数据如何导入到Sql Server数据库中?


3. 在 创建新数据源对话框中,选择MySQL ODBC 5.3 ANSI Driver ,点完成。


MySql的数据如何导入到Sql Server数据库中?


4.完成后会出现MySQL 链接对话框,添加你的 MySQL 数据库账号信息,并确认"root"账号是否有全部的权限,如果你安装MySQL 没有修改的话, 不要改 3306这个端口号。


MySql的数据如何导入到Sql Server数据库中?


5.选择要建立连接的数据库,并测试。


MySql的数据如何导入到Sql Server数据库中?


(二)创建Microsoft SQL到MySQL的链接

1.在SQL Server Management Studio中打开一个new query 拷贝以下语句,修改为你的数据库的名称、账户密码,并运行。


EXEC master.dbo.sp_addlinkedserver 
@server = N'MYSQL',
@srvproduct=N'MySQL',
@provider=N'MSDASQL',
@provstr=N'DRIVER={MySQL ODBC 5.3 ANSI Driver}; SERVER=127.0.0.1; _
DATABASE=dapingtai; USER=root; PASSWORD=*******; OPTION=3'


2.这个脚本通过ODBC驱动创建一个联接到你的MySQL数据库,这个联接出现在Microsoft SQL Server Management Studio如下图:


MySql的数据如何导入到Sql Server数据库中?

没有出现MYSQL这个连接的话,就刷新一下看看。

有的话点连接前的+号展开看看表是否都完全映射过来了。。。。这里也可能会有一个坑,见下图:


MySql的数据如何导入到Sql Server数据库中?


见到错误也不要着急,请仔细检查调用master.dbo.sp_addlinkedserver传递的的参数@provstr所填写的数据库驱动是否和建立ODBC时所选的驱动名称一致?错误往往都是自己的粗心大意而造成的哦。。。


(三). 在两个数据库之间导数据

Microsoft SQL Server中创建个新的数据库(如:homework1),在new query中拷贝如下语句,运行后就可以把MySQL 数据库 “dapingtai"导入到Microsoft SQL 数据库“homework1”中。  

导入Region表

SELECT * INTO [homework1].dbo.Region
FROM openquery(MYSQL, 'SELECT * FROM dapingtai.region')


成功导入。。

导入Category表

SELECT * INTO [homework1].dbo.category
FROM openquery(MYSQL, 'SELECT * FROM dapingtai.category')


咦,出错了!!!


MySql的数据如何导入到Sql Server数据库中?


来在MySql下看一下Category的表设计,keyword字段为VARCHAR(100)


MySql的数据如何导入到Sql Server数据库中?



我们查查看嘛,唉!还真有几个不按套路出牌的家伙。。。。见下图


MySql的数据如何导入到Sql Server数据库中?

好吧,我忍了。。。那keyword字段到底应该给多大呢?


MySql的数据如何导入到Sql Server数据库中?


索性把Category表的字段改为VACHAR(200),在执行就成功了。