2009-09-18 98 views
10

我想在MS SQL Server 2000中創建鏈接服務器到運行在端口x(不是默認端口1433)上的MS SQL 2005服務器。但它不起作用,因爲我無法在任何地方指定端口!?如何使用非默認端口創建鏈接服務器

使用sqlcmd(指定端口x),我可以毫無問題地連接到服務器 - 但我無法將其設置爲鏈接服務器。

這怎麼辦?

回答

6

在新的鏈接服務器對話框中,選擇「其他數據源」,選擇「Microsoft OLE DB提供程序SQL Server」作爲您的供應商的名稱,然後用這個作爲你的供應商字符串:

Data Source=192.168.1.100,1433;Network Library=DBMSSOCN;Initial Catalog=yourdbname;User ID=username;Password=password; 

更換IP和「1433」與您的IP和端口號。在連接字符串

更多信息:http://support.microsoft.com/kb/238949

+0

這將工作!你知道是否有一種方法可以使用SQLNCLI提供程序進行這項工作? – mjv 2009-09-18 15:51:43

+1

我沒有嘗試過自己,但你可以嘗試使用「SQL Server配置管理器」創建一個別名,在那裏定義IP和端口號。然後在你的SQLNCLI連接字符串中使用該別名。缺點是每個客戶端機器都需要這樣做。如果它只是兩個鏈接的服務器,它應該可以工作。 – 2009-09-18 16:06:54

7

另一種方式來實現這一目標(假設你已經在SQL Server中建立8080)是用下面的代碼:

EXEC sp_addlinkedserver 'myserver', '', 'SQLNCLI', 'xx.xx.xx.xx,8080' 

EXEC sp_addlinkedsrvlogin 'myserver', 'FALSE', NULL, 'user', 'pwd' 
6

基於巴蒂爾的建議,添加一個別名爲我工作。

(SQL Server 2008 R2中):

  • 打開SQL Server配置管理器
  • 展開 「SQL Server配置管理(本地)」
  • 展開 「SQL Native Client的10.0配置(32位)」
  • 點擊「別名」,在右側的別名列表
  • 單擊鼠標右鍵,選擇「新建別名」
  • 「別名」是什麼ÿ你想參考鏈接的服務器。
  • 「端口號」是您的非默認端口。
  • 「協議」取決於,但您最有可能將其保留爲「TCP/IP」。
  • 「服務器」是您嘗試連接到的服務器的地址(不包括端口)。

(重複「SQL本機客戶端10.0配置」(減去了「32位」文本)中的步驟)

添加一個別名,這種方式讓我添加鏈接的服務器與服務器類型爲「SQL服務器」,而無需配置提供期權等

0

注意4部分查詢將類似於此:

SELECT * FROM [SQLSERVER,14333].[DATABASE].[dbo].[Table1] 
0

我不得不這樣做今天以及(添加鏈接的服務器使用非默認港口)。就我而言,它是將SQL Server 2014鏈接服務器添加到SQL Server 2016。

步驟,使用SQL Server Management Studio中:

  1. 打開SSMS並轉到服務器對象>鏈接服務器>新建鏈接服務器
  2. 使用這種格式的鏈接服務器 ip-address-of-linked-server\instance-name,non-default-port192.168.10.5\dev-sql,25250。僅當實例不是目標鏈接服務器上的默認實例時才需要實例名稱。此外,如果鏈接的服務器位於本地網絡上,則可以通過主機名替換IP地址。對於服務器類型

  3. 選擇SQL Server添加使用的安全選項卡

  4. 查詢使用就像SQLDBA指定above格式的新服務器連接所需的任何憑據。

example screenshot

使用T-SQL同一件事:

EXEC master.dbo.sp_addlinkedserver @server = N'192.168.10.5\dev-sql,25250', @srvproduct=N'SQL Server'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'192.168.10.5\dev-sql,25250',@useself=N'False',@locallogin=NULL,@rmtuser=N'my_username',@rmtpassword='my_pswd'

相關問題