欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

sqlserver导入数据到mysql的详细图解

程序员文章站 2023-11-05 17:56:58
sqlserver导入数据到mysql的详细图解...

1、去mysql的官方下载一个odbc的驱动,因为mssql一直没有集成mysql的驱动,这个玩意需要单独下载,并安装的。http://dev.mysql.com/downloads/connector/odbc/5.1.html
我下载的是windows解压缩的包without installer (unzip in c:\),没有选择安装的。绿色版比安装版本要好。点击install的一个bat文件。
2、如果安装成功,在odbc数据源驱动里面有个选项,如下图:
 sqlserver导入数据到mysql的详细图解
                                                  
3、点击上图的用户dsn,添加一个mysql的连接,前提是你有一个mysql的数据库。
 sqlserver导入数据到mysql的详细图解
   
双击之后出现下面的提示框:
 
sqlserver导入数据到mysql的详细图解

啊,哈,成功了一半了。

4、如果是sql server2000用dts的话,就可以直接用了。关键步骤在下面

sqlserver导入数据到mysql的详细图解


下面这个界面很熟悉了:

sqlserver导入数据到mysql的详细图解

ok导入完成了。
当然也可以使用文件dsn,把连接串存成一个文件,然后导入的时候选择文件dsn,只要找到连接串的路径就可以了,不在赘述。。

5、如果你用的是sql2005的ssis的话,有点恶心。在这里我在强调一下:

我十分讨厌sql2005里面的dts。希望微软的人能看到。
 sqlserver导入数据到mysql的详细图解

这里面的dsn要手动写的,没有办法从odbc里面直接读取出来,这个功能很实用,不会让人产生很多的误解。但是在2k5里面却没有,非常费解,微软的家伙是干啥吃的。
别以为你已经成功了,点下一步,在点下一步,等死吧。
sqlserver导入数据到mysql的详细图解
我操,只能选择-编写查询以指定要传输的数据。吐血了。。有200多个表啊。这tmd咋搞?
经过测试,文件dsn和系统dsn都没有选择所有的表。而如果选择文件dsn用连接字符串的方式报这个错误:
sqlserver导入数据到mysql的详细图解

我十分讨厌sql server2005的dts功能,设计微软sql server 2005的工程师是个白痴。

我决定用2k了。

我有测试了一下2008,嗯。2008有这个功能,下图:
sqlserver导入数据到mysql的详细图解

sql server 迁移数据到mysql

一、背景

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

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

 

二、转移数据

我使用了mysql的client的工具sqlyog,这个工具的安装很简单。安装完成之后点击需要导入的目标数据库,点击右键【import】->【import extenal data】;

sqlserver导入数据到mysql的详细图解

(figure1:import)

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

sqlserver导入数据到mysql的详细图解

(figure2:start a new job)

下面就是dsn的设置界面,如果你的下来列表中没有需要导出sql server数据库的dsn,那么需要通过【create a new dsn】来创建一个新的dsn连接到sql sever;

sqlserver导入数据到mysql的详细图解

(figure3:create a new dsn)

sqlserver导入数据到mysql的详细图解

(figure4:创建新数据源)

sqlserver导入数据到mysql的详细图解

(figure5:选择数据源类型)

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

sqlserver导入数据到mysql的详细图解

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

sqlserver导入数据到mysql的详细图解

(figure7:选择sql server服务器)

sqlserver导入数据到mysql的详细图解

(figure8:设置sql server帐号和密码)

sqlserver导入数据到mysql的详细图解

(figure9:选择sql server数据库)

sqlserver导入数据到mysql的详细图解

(figure10:测试数据源)

sqlserver导入数据到mysql的详细图解

(figure11:测试成功)

选中【file dsn】,在浏览中选择我们刚刚创建好的dsn,接着填写登录到sql server的帐号和密码;

sqlserver导入数据到mysql的详细图解

(figure12:选择dsn)

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

sqlserver导入数据到mysql的详细图解

(figure13:设置mysql帐号和密码目标数据库)

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

sqlserver导入数据到mysql的详细图解

(figure14:表拷贝)

上面的全部过程就是为创建sql server与mysql的一个管道,接下来就是最为重要的设置sql server表与mysql表之间的对应关系了;里面包括了sql server表字段与mysql表字段之间的对应关系【map】,高级选项【advanced】,过滤【where】。

sqlserver导入数据到mysql的详细图解

(figure15:选择表对应关系)

下图figure16,数据源【source】,描述【destination】,特别注意这里数据类型【type】,这里的意思是转换目标的数据类型,但是不需要跟目标表的一样,因为这里是做为一个临时存储的数据类型,类似findon在sql server中是datetime,这里转换为mysql的timestamp,其实mysql目标表的数据类型是datetime,这样的设置也是可以转换成功的。

sqlserver导入数据到mysql的详细图解

(figure16:表字段转换)

sqlserver导入数据到mysql的详细图解

(figure17:高级选项)

sqlserver导入数据到mysql的详细图解

(figure18:error)

sqlserver导入数据到mysql的详细图解

(figure19:log)

sqlserver导入数据到mysql的详细图解

(figure20:执行信息)

sqlserver导入数据到mysql的详细图解

(figure21:执行结果)

sqlserver导入数据到mysql的详细图解

(figure22:原始sql server的数据列表)

sqlserver导入数据到mysql的详细图解

(figure23:转移到mysql的数据列表)

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