mysql - 使用 OBDC 驱动程序将 MySQL 链接到 MS SQL Server(错误 7303)
问题描述
我正在尝试使用 ODBC 驱动程序在 MySQL 和 MSSQL 数据库之间建立链接。原因是我们的网站是使用 PHP 和 MySQL 构建的,我们需要从 SQL Server Manag 管理数据库。工作室。
我已经将 MySQL 链接到 MS ACCESS,因此 MySQL ODBC 驱动程序可以正常工作。
当我尝试从 MICROSOFT SQL SERVER MANAGEMENT STUDIO > SERVER OBJECTS > LINKED SERVERS > NEW LINKED SERVER...
使用此配置:
我收到此错误:
我已经尝试过所有这些版本的 MySQL OBDC 驱动程序:
- ODBC 5.3 Unicode (32-bit) - 这个是与 MS ACCESS 一起使用的
- ODBC 5.3 ANSI(32 位)
- ODBC 5.3 Unicode(64 位)
- ODBC 5.3 ANSI(64 位)
- ODBC 8.0 Unicode(64 位)
- ODBC 8.0 ANSI(64 位)
对于新的链接服务器:
我试过在“提供者字符串”中写这个:
Driver={MySQL ODBC 5.3 ANSI 驱动程序};
数据库=myDB;OPTION=134217728;PWD=myPASS;UID=myUSER;SERVER=mySERVERODBC:DSN=KARALIGROUP32::Table=myTABLE
我也尝试在“目录”中编写 myTABLE。
- 对于安全选项卡,我已经尝试了所有给出的四个选项。(在最后一个选项中,我输入了 MySQL DB 和 SQL Server 的登录名)
- 对于“服务器选项”选项卡,我尝试给出 RPC 和 RPC 输出(都为 TRUE 或都为 FALSE)
我还必须提到数据库 SQL Server 不是我自己的,所以我没有完整的凭据。这是我的用户从 SECURITY > LOGINS 获得的权限。
我的结论:我认为这与 MS SQL SERVER MANAGEMENT STUDIO 配置或我作为用户的权限有关。
谢谢你的帮助!
更新:
我遵循了TallTed给出的建议,它还没有奏效。
在“安全性”和“服务器选项”选项卡中,我将它们保留在前面的屏幕截图中。我还尝试了屏幕截图中显示的所有 ODBC 连接。
还有其他想法吗?谢谢你的帮助!
解决方案
首先 - 您显示的错误与您的 SQL Server 用户权限无关。
接下来——重要的是要记住,Microsoft SQL Server 并不是真正的 ODBC 客户端应用程序。它是一个 OLE DB 和一个 ADO.NET 客户端应用程序。
另请注意——64 位 SQL Server 需要 64 位 ODBC 驱动程序;32 位 SQL Server 需要 32 位 ODBC 驱动程序。64 位 SQL Server 有一些额外的陷阱,如我雇主网站上的这篇文章中所述。
如果您的数据是严格的 8 位“窄”代码页,那么您不需要 Unicode 驱动程序,并且可能会发现使用 ANSI 驱动程序更容易。也就是说,假设您有ODBC 5.3 Unicode(32 位)与 Access 一起使用,我认为您将成功使用该或ODBC 5.3 Unicode(64 位)与 SQL Server。
现在——迈向成功的可能一步。在您的第一个屏幕截图中,产品名称必须是MSDASQL
. 您将不需要Provider String,因为此字符串来自您的 ODBC DSN。