在SQLServer2005中为MySQL数据库创建链接服务器

在SQLServer2005中为MySQL数据库创建链接服务器,mysql,sql-server-2005,odbc,linked-server,Mysql,Sql Server 2005,Odbc,Linked Server,我目前正在尝试我以前从未做过的事情——我正在尝试在SQL Server环境中访问MySQL数据。在这里,我们有两台服务器(MySQL和MSSQL服务器),每台服务器存储不同类型的数据。最近,我发现需要编写包含两台服务器的数据的查询。我读过的一种方法是在SQLServer中添加一个“链接服务器”。但是,尽管我可能尝试,但我似乎无法添加链接服务器 我在Windows7系统上工作,我们的SQLServer实例是2005,MySQL版本是5.5.31 到目前为止,我所做的是: 下载并安装 使用该驱动程

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

我在Windows7系统上工作,我们的SQLServer实例是2005,MySQL版本是5.5.31

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

  • 下载并安装
  • 使用该驱动程序为MySQL数据库创建了一个系统DSN,称为“生产”。(我还测试了数据源应用程序的连接,它连接得很好)
  • 选中SQL Server(MSDASQL)中的提供程序以配置选项,如“允许嵌套查询”和“允许类似”运算符
  • 右键单击SQL Server中服务器对象中的链接服务器>“新建链接服务器”
从这里,我填写链接服务器信息,如下所示:



然后在安全选项卡中,我选择了“将使用此安全上下文建立连接”,并提供了我的用户名和MySQL服务器的登录名

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

已创建链接服务器,但连接测试失败。是否要保留链接的服务器


其他信息:

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


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

有关帮助,请单击:

顺便说一句,如果你点击那个链接寻求帮助,什么也不会显示。 我看到其他人建议尝试一个旧的MySQL ODBC驱动程序,为32位驱动程序和64位驱动程序添加一个系统数据源,然后重新启动我的机器(而不是DB服务器)——这些都不能修复我的错误

我不明白的是,为什么我的系统DSN似乎工作正常,连接良好,但SQL Server看不到数据源。有人看到我遗漏了什么,或者我可能配置错误了什么吗

编辑
说明我重新启动了本地计算机,但在尝试添加链接服务器后没有重新启动DB服务器。

从您所说的一切来看,SQL server 2005组件的位与已安装的MySQL ODBC驱动程序之间可能不匹配

这绝对是一条路要走


您可能需要,并为每个DSN配置一个相同的(相同的名称和所有内容!)系统DSN。

我想说,您可能还希望/需要安装此修补程序。这对于让XP和2003在ODBC类型的连接中正常工作非常有用


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

我有同样的问题,但上面的链接解决了我的问题

 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