我一直在尝试将MSSQL服务器的数据库连接到Google Cloud MySQL服务器,以便我可以在它们之间进行连接。我在我的机器上设置了正确的ODBC并测试了连接,这很好。但是当我在MS Server Management Studio中设置链接服务器时,我收到错误7303
已创建链接服务器但连接测试失败。你想保留链接服务器吗?
其他信息: 执行Transact-SQL语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)
无法为链接服务器“MYSQL”初始化OLE DB提供程序“MSDASQL”的数据源对象。 用于链接服务器“MYSQL”的OLE DB提供程序“MSDASQL”返回消息“[Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序”。 (Microsoft SQL Server,错误:7303
我在这里可能会缺少什么?我确保我的ODBC驱动程序是64位(与我所拥有的MS服务器管理相同),但也将系统DSN配置为32位。我必须在Google Cloud Server上配置一些内容才能使此链接正常工作吗?由于DSN连接测试通过,我认为它必须是Server Management Studio本身的一些失败。谢谢!
编辑:这是用于创建链接服务器的脚本:
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'SERVERNAME', @srvproduct=N'MSDASQL', @provider=N'MSDASQL', @datasrc=N'server-name'
GO
EXEC master.dbo.sp_serveroption @server=N'SERVERNAME', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SERVERNAME', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'SERVERNAME', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SERVERNAME', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SERVERNAME', @optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SERVERNAME', @optname=N'rpc out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SERVERNAME', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SERVERNAME', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'SERVERNAME', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'SERVERNAME', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'SERVERNAME', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'SERVERNAME', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'SERVERNAME', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'SERVERNAME', @locallogin = NULL , @useself = N'False'
GO
答案 0 :(得分:0)
说实话,实际上这是客户端错误。
您没有在客户端计算机上安装MSDASQL驱动程序,或者可能只有客户端工具无法连接的版本-例如,在运行64位客户端时,例如32位。
创建链接服务器没有错误是正常的。
sp_addlinkedserver不检查驱动程序;它只是创建相关的表条目。
要轻松查看您所拥有的驱动程序,请尝试使用可视的ODBC数据源工具。
您可以开始创建DNS的过程,并查看所有驱动程序名称。它可能只有长名,但也可以。