在SQL Server 2005中为MySQL数据库创建链接服务器

时间:2015-10-07 17:18:22

标签: mysql sql-server-2005 odbc linked-server

我目前正在尝试以前从未做过的事情 - 我试图在SQL Server环境中访问MySQL数据。我在哪里,我们有两个服务器(MySQL和MSSQL服务器),每个服务器存储不同类型的数据。最近,我发现需要编写包含两个服务器数据的查询。我读到这样做的一种方法是添加一个"链接服务器"在SQL Server中。但尝试我可能似乎无法添加链接服务器。

我正在使用Windows 7系统,我们的SQL Server实例是2005,MySQL版本是5.5.31。

到目前为止,我所做的是:

  • 已下载并安装了MySQL ODBC drivers
  • 使用该数据库驱动程序为MySQL数据库创建了一个系统DSN,名为" Production"。 (我还测试了数据源应用程序的连接,它连接得很好。)
  • 检查SQL Server中的提供程序(MSDASQL)以配置诸如"允许嵌套查询等选项。和"允许' LIKE'操作员"
  • 右键单击SQL Server中服务器对象中的链接服务器> "新链接服务器"

从这里,我填写链接的服务器信息,如下所示:

 Checked "Other data source" (not SQL Server)

 Chose Provider "Microsoft OLE DB Provider for ODBC Drivers"

 Product Name: "Production"

 Data Source: (the name of the System DSN) Production

然后在安全选项卡中,我选择了"将使用此安全上下文进行连接"并提供了MySQL服务器的用户名和登录信息。

然后这就是我每次都遇到错误的地方。我总是收到以下错误消息:

  

已创建链接服务器但连接测试失败。你想保留链接服务器吗?

           

其他信息:

     

执行Transact-SQL语句或批处理时发生异常。 (Microsoft.SqlServer.Express.ConnectionInfo)

           

无法初始化OLE DB提供程序的数据源对象" MSDASQL"对于链接服务器" FLUX"。   OLE DB提供程序" MSDASQL"对于链接服务器" FLUX"返回消息" [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序"。 (Microsoft SQL Server,错误:7303)

     

如需帮助,请点击:http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.5000&EvtSrc=MSSQLServer&EvtID=7303&LinkId=20476

如果您点击该链接寻求帮助,顺便说一下,什么也没有显示。 我看到其他人建议尝试使用较旧的MySQL ODBC驱动程序,为32位驱动程序和64位驱动程序添加系统数据源,然后重新启动我的计算机(而不是数据库服务器) - 这些都没有修复我的错误。

我不明白为什么我的系统DSN似乎工作正常,但SQL Server无法看到数据源。有没有人看到我错过了什么,或者我可能错误配置了什么?

修改 澄清我尝试添加链接服务器后重新启动了本地计算机,但没有重启数据库服务器。

3 个答案:

答案 0 :(得分:0)

根据您所说的一切,您可能在SQL Server 2005组件的位数与安装的MySQL ODBC驱动程序之间存在不匹配。

System DSNs绝对是要走的路。

您可能需要install both the 32-bit and 64-bit ODBC driver,并为每个配置相同的(相同名称和所有内容!)系统DSN。

答案 1 :(得分:0)

我想说你可能也想要/需要安装这个补丁,这对于让XP和2003正常用于我的ODBC类型连接非常有用。

http://www.microsoft.com/downloads/details.aspx?FamilyID=000364db-5e8b-44a8-b9be-ca44d18b059b&displaylang=en

答案 2 :(得分:0)

您的数据库服务器是否位于安装了Sql Server Management Studio的同一台计算机上?如果SQL Server在远程计算机上,那么您需要在远程计算机上安装ODBC驱动程序并根据link

在那里创建DSN

我遇到了同样的问题,但上面的链接解决了我的问题。