如何将MySQL链接服务器添加到SQL Server?


8

我正在尝试将SQL Server上的链接服务器添加到MySQL Server。

请注意,SQL Server安装在具有不同域名的单独计算机上。

SQL Server 10.0.1.1在old_domain.com上。

MySQL服务器10.0.1.2位于new_domain.com上。

我在服务器上添加了ODBC数据源,10.0.1.1并测试了连接,未报告任何问题。

然后,我打开Microsoft SQL Server Management Studio并导航到SQL SERVER > Server Object > Linked Servers

我进入向导以添加链接服务器,并按如下方式进行配置:

  1. 链接服务器:“ MySQLNewServer”
  2. 我选择了“其他数据源”提供程序“用于ODBC的Microsoft OLE DB提供程序”产品名称“与MySQL的连接”数据源“ MySQL”与第一步中添加的数据源名称相同。
  3. 在“安全性”选项卡上,选择“使用此安全性上下文进行访问”,然后输入SQL Server用户名和SQL Server密码。
  4. 我打“确定”

注意:我遵循此链接上的说明http://dbperf.wordpress.com/2010/07/22/link-mysql-to-ms-sql-server2008/

但是,我收到此错误:

链接服务器“ MySQLNewServer”的OLE DB Providor“ MSDASQL”返回消息“ [MySQL] [ODBC 5.2(w)驱动程序]无法连接到10.0.1.1(10055)上的MySQL服务器Microsoft SQL Server错误:7303。

有人可以告诉我我在做什么错吗?我怎样才能使这两个服务器进行通信?

Answers:


1

我们在SQL上有一个指向MySQL服务器的链接服务器。创建链接服务器是一件非常简单的事情。

棘手的部分是在MySQL方面整理权限。

如果可以使用内存,则需要在SQL服务器上创建本地帐户,并在MySQL服务器上创建登录名,以获取链接服务器将在其中运行的完整计算机名。

在SQL Server上,我具有Sqltest的登录名。这是一个SQL帐户

在链接的服务器属性上,我具有“安全性”>使用此安全性上下文> MySQL登录用户名和密码

在MySQL框中,我具有Sqltest@myserver.com的登录名。这是我的链接服务器长时间出现故障的地方。


1

我认为MySQL和MS-SQL都应允许远程连接。ODBC的作用是使管道在数据传输方面是双向的(即使为链接的服务器连接发送ACK),即也从MS-SQL端检查远程登录。确保通过10.0.1.1的防火墙允许端口3306。


0

我推测这并不是您做错的事情,它更像是Windows不会告诉您实际的问题是什么。

括号中的数字(10055)是ODBC驱动程序尝试连接到MySQL时返回的系统错误。

C:\>perror 10055
Win32 error code 10055: An operation on a socket could not be performed because
the system lacked sufficient buffer space or because a queue was full.

不是很有帮助。错误10055是WSAENOBUFS,它可能是用于寻找问题本质的更有用的代码,或者可能是分散注意力,这是实际问题的副作用。

好消息是,如果有个好消息,我相信您至少可以将故障排除减少一半,而只专注于SQL Server方面,因为这不是MySQL Server将“返回”给您的错误。我的意思是,这不是“连接时失败”,而是真正开始连接过程时的失败。实际上,您实际上从未连接到MySQL Server,因此您应该能够安全地排除MySQL Server方面的权限和其他配置,这是问题的一部分,直到您克服了阻止甚至尝试执行以下操作的特定条件为止连接。

这里的另一个问题中,错误代码相同,并且问题是无法连接到MySQL Server,尽管我认为在这种情况下,它不是链接服务器,而只是普通的客户端连接,并且所涉及的计算机显然有网络问题。

其他错误代码7303似乎暗示SQL Server端存在权限问题。也在这里。抱歉,我无法具体说明要尝试的事情,但是也许这里的一些内容可以使您朝着有用的方向发展。


我不太确定。在某一点上它运行良好。但几天前我发现它坏了。从那时起,我关闭了mysql服务器上的dns查找。因此,MySQL将仅查看IP地址。但这没关系,因为我用来连接mysql的用户是root @%。我不知道是否将“ skip-name-resolve”添加到mysql是否导致了此问题,因为在更改发生后一段时间我咳嗽了一下。
麦克,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.