我目前正在尝试以前从未做过的事情 - 我试图在SQL Server环境中访问MySQL数据。我在哪里,我们有两个服务器(MySQL和MSSQL服务器),每个服务器存储不同类型的数据。最近,我发现需要编写包含两个服务器数据的查询。我读到这样做的一种方法是添加一个"链接服务器"在SQL Server中。但尝试我可能似乎无法添加链接服务器。
我正在使用Windows 7系统,我们的SQL Server实例是2005,MySQL版本是5.5.31。
到目前为止,我所做的是:
从这里,我填写链接的服务器信息,如下所示:
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)
如果您点击该链接寻求帮助,顺便说一下,什么也没有显示。 我看到其他人建议尝试使用较旧的MySQL ODBC驱动程序,为32位驱动程序和64位驱动程序添加系统数据源,然后重新启动我的计算机(而不是数据库服务器) - 这些都没有修复我的错误。
我不明白为什么我的系统DSN似乎工作正常,但SQL Server无法看到数据源。有没有人看到我错过了什么,或者我可能错误配置了什么?
修改 澄清我尝试添加链接服务器后重新启动了本地计算机,但没有重启数据库服务器。
答案 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类型连接非常有用。
答案 2 :(得分:0)
您的数据库服务器是否位于安装了Sql Server Management Studio的同一台计算机上?如果SQL Server在远程计算机上,那么您需要在远程计算机上安装ODBC驱动程序并根据link
在那里创建DSN我遇到了同样的问题,但上面的链接解决了我的问题。