微软BI 之SSIS 系列 - SSIS 中使用 ODBC 链接 MySQL 以及32位和64位安装的问题

浏览: 6402

开篇介绍

本文描述如何在 SSIS 中使用 ODBC 的方式连接访问 MySQL 数据库,以及其中可能会遇到的 32位和64位访问的问题。

下载安装 ODBC 驱动

需要在运行 SSIS 的开发或运行环境中安装 ODBC 的驱动,驱动地址如下:

http://dev.mysql.com/downloads/connector/odbc/

在下载的时候需要用户注册,请自行设置。有两个版本的 ODBC 提供,32/64位,由于我的开发环境是64位的 Windows Server 2012 所以我选择了64位的驱动(后面证明是不行的,有解释)。

Clipboard Image.png

下载页面


安装方式非常简单。

Clipboard Image.png

Clipboard Image.png

配置 ODBC 数据源

由于我使用的是 Windows Server 2012 64位的操作系统,因此这里选择 ODBC 64位的数据源。

Clipboard Image.png

选择系统 DSN 这样这个数据源可以被其他用户可见。

Clipboard Image.png

添加一个系统数据源,可以看到这个驱动。

Clipboard Image.png

配置链接用户名和密码,链接测试成功。

Clipboard Image.png

在 SSIS 数据流中,ODBC 数据源配置选项无法发现新配置的连接数据源。

Clipboard Image.png

出现这个问题的原因其实就要考虑到我们安装的 SQL SERVER Data Tools 虽然是来自 SQL SERVER 2012,但是它实际上还是使用的 2010 的 Shell,本身就是32位的。因此在这个开发环境中,64位的 ODBC 数据源是无法访问的。

重新下载32位的 ODBC 驱动,这时出现两个选择 ANSI 和 UNICODE,在这里我选择了支持多字符的 UNICODE 驱动。

Clipboard Image.png

配置测试连接是成功。

Clipboard Image.png

配置完成后,32位和64位的都可见。

Clipboard Image.png

SSIS 中访问 ODBC 数据源

重新配置 ODBC 数据源就可以找到刚配置好的 BIWORK ODBC 数据源。

Clipboard Image.png

测试一条查询语句也是可以连接的。

Clipboard Image.png

数据的导入也是没有问题的。

Clipboard Image.png

总结

关于在 SSIS 中访问连接 MySQL,Oracle 等数据源的时候或多或少都会碰到这样的问题。要么就是在开发环境出现连接失败,要么开发环境没有问题部署发布之后连接失败。其主要的原因还是出现在这个驱动上面 - 开发工具环境自身只支持 32位的驱动,此时应该安装和配置 32位的驱动;如果发布到服务器,运行时环境是64位的时候,此时应该安装和配置 64位的驱动。所以最好的方式就是将 32位和64位的 ODBC 驱动全部都装上并配置好,这样无论是哪种环境通过数据源名称都可以找到合适的 ODBC 驱动。

推荐 3
本文由 BIWORK 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

3 个评论

请问在SQL命令中怎样添加参数?
学习了,正好今天弄oracle也遇到这个问题
我想 导入mysql 但是报错
[SSIS.Pipeline] 错误: SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。处理输入“ADO NET 目标输入”(258)时,组件“ADO NET Destination”(255)的 ProcessInput 方法失败,错误代码为 0xC020844B。标识的这个组件从 ProcessInput 方法返回了一个错误。虽然该错误是此组件特有的,但却是致命的,将导致数据流任务停止运行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。

要回复文章请先登录注册