创建从MS SQL Server到Google Cloud MySQL服务器的链接服务器实例

问题描述 投票:0回答:1

我一直在尝试将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 Driver Manager]数据源名称未找到,未指定默认驱动程序”。 (Microsoft SQL Server,错误:7303

我在这里可能会想念什么?我确保我拥有的ODBC驱动程序为64位(与我拥有的MS Sever Management相同),但也将System 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
mysql sql-server linked-server
1个回答
0
投票

老实说,这实际上是客户端错误。您没有在客户端计算机上安装MSDASQL驱动程序,或者可能只有客户端工具无法连接的版本-例如,在运行64位客户端时,例如32位。

通常,可以正确创建链接服务器。sp_addlinkedserver不检查驱动程序;它只是创建相关的表条目。

为了轻松查看您拥有的驱动程序,请尝试使用可视的ODBC数据源工具。您可以开始创建DNS的过程,并查看所有驱动程序名称。它可能只有长名,但也可以。

© www.soinside.com 2019 - 2024. All rights reserved.