1

我已成功添加,鏈接和查詢其他sql服務器從linux sql server 2017, ,但只能使用默認實例名稱。 (無實例名稱)無法將其他sql服務器從linux鏈接到命名實例

我無法連接任何名爲servers的其他特定實例。 (從windows sql server2016可以)。 它看起來像反斜槓+實例名稱被認爲是洞主機名! 我嘗試過雙//,\ \或/ ...

是已知問題還是我做錯了什麼?

我SSMS 14.0.17119.0在Windows 8.1專業版,

的Microsoft SQL Server 2017年(CTP2.1) - 14.0.600.250(X64) 2017年5月10日十二時21分23秒 版權所有(C)2017年微軟公司。版權所有。在Linux(Ubuntu的17.04) 開發版(64位)

我試圖在SSMS用戶inteface,並用T-SQL Exec的master.dbo.sp_addlinkedserver ...

,並收到此錯誤我相信的消息不是真正的錯誤:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo) 

------------------------------ 

SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF]. 
OLE DB provider "SQLNCLI11" for linked server "SAGE-10\L1000" returned message "Login timeout expired". 
OLE DB provider "SQLNCLI11" for linked server "SAGE-10\L1000" returned message "A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.". (Microsoft SQL Server, Error: -1) 

回答

0

當你試圖連接到SQLEXPRESS常常端口設置爲隨機。在我的例子中設置爲。例如

SELECT DISTINCT local_net_address, local_tcp_port FROM sys.dm_exec_connections 

然後:要在服務器驗證的端口號,你可以做到這一點

EXEC master.dbo.sp_addlinkedserver @server = N'Server20_inst2', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'192.168.1.112,61423', @catalog=N'Test' 
2

我有同樣的問題。幸運的是,在我的情況下,鏈接的實例已設置爲偵聽另一個靜態TCP端口。所以我可以使用它作爲解決方法。

如果您必須選擇更改要鏈接的服務器,您可以在中設置tcp端口SQL Server配置管理器 - 網絡配置 - INST2協議 - TCP/IP - 屬性 - IP地址 - TCP端口。

之後,我可以像這樣添加鏈接服務器。端口號爲1435

EXEC master.dbo.sp_addlinkedserver @server = N'Server20_inst2', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'192.168.1.112,1435', @catalog=N'Test' 

EXEC master.dbo.sp_addlinkedsrvlogin 
@rmtsrvname=N'Server20_inst2', @useself=N'False', @locallogin=NULL, @rmtuser=N'sa', @rmtpassword='##########' 
相關問題