我已经成功地从linux 2017添加、链接和查询了其他sql服务器,但只使用默认实例名。(没有实例名称)
我无法连接任何其他名为服务器的特定实例。(从windows server2016中可以)。看起来反斜杠+实例名被认为是洞主机名!?我试过双倍/,\\或/.
这是已知的问题还是我做错了什么?
我在Windows 8.1 Pro上有SSMS 14.0.17119.0,
微软Server 2017 (CTP2.1) - 14.0.600.250 (X64) 2017年5月10日12:21:23版权(C) 2017年微软公司。版权所有。Linux上的开发者版(64位)(Ubuntu17.04)
我尝试使用SSMS上的用户整数,以及tried 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)发布于 2018-01-04 13:36:41
当您尝试连接到时,通常是随机设置的。在我的实例中,设置为61423。要验证服务器上的端口号,可以这样做:
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'发布于 2017-08-08 08:07:30
我也有过同样的问题。幸运的是,在我的例子中,链接实例被设置为侦听另一个静态tcp端口。所以我可以用它来解决问题。
如果必须选择更改链接到的服务器,则可以在server配置管理器-网络配置- INST2 - TCP/IP - properties - IP地址- tcp端口中设置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='##########'https://stackoverflow.com/questions/44902946
复制相似问题