【发布时间】:2018-07-19 01:04:49
【问题描述】:
我一直在尝试将 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] Data source name not found and no default driver specified”。 (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
【问题讨论】:
-
SSMS 是客户端工具,而不是服务器。至于错误,它表示服务器上没有具有该名称的 ODBC 源。 您的机器上是否安装了 SQL Server?您是否创建了用户数据源或机器数据源?
-
我的机器上确实安装了 SQL Server(使用 SELECT @@ Version 它说我有 SQL Server 2012,64 位)。我创建了一个系统 DSN,它的连接在 Server Management Studio 环境之外可以正常工作。
-
这是来自 Google 的链接,外部应用程序的连接选项。cloud.google.com/sql/docs/mysql/external-connection-methods
-
我再说一遍,SSMS 是客户端工具。错误来自服务器。 SSMS 能够执行创建链接服务器的命令。但是,当它尝试检查连接时,出现了错误。
-
请发布用于创建链接服务器的命令。 SSMS 中几乎所有对话框的顶部都有一个
script按钮
标签: mysql sql-server linked-server