簡體   English   中英

為什么對SQL Server Express Edition 2014的遠程訪問失敗?

[英]Why does remote access to SQL Server Express Edition 2014 fail?

我剛剛在W7工作站上安裝了SQL Server 2014 Express版。 請幫助我從舊的Windows XP連接到新實例。 下面的命令行會話提供了詳細信息(允許遠程訪問)。 Google搜索並沒有太大幫助。

在承載新實例的計算機(10.0.0.100,“服務器”工作站)上,兩個實例均可訪問:

C:\1>hostname
FDE-HQ-WK4
C:\1>sqlcmd -Sfde-hq-wk4\sql2014 -Usa -Pdbasql -Q"select @@version select @@servername"
----------------------------------------------------------------------------------------

Microsoft SQL Server 2014 - 12.0.2000.8 (Intel X86)
        Feb 20 2014 19:20:46
        Copyright (c) Microsoft Corporation
        Express Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
----------------------------------------------------------------------------------------
FDE-HQ-WK4\SQL2014

C:\1>sqlcmd -Sfde-hq-wk4 -Usa -Pdbasql -Q"select @@version select @@servername"
----------------------------------------------------------------------------------------
Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86)
        Mar 29 2009 10:27:29
        Copyright (c) 1988-2008 Microsoft Corporation
        Express Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
----------------------------------------------------------------------------------------
FDE-HQ-WK4\SQLEXPRESS

下一個會話位於一台計算機(10.0.0.113“客戶端”工作站)上,該計算機與上一個物理共享我的辦公桌,舊實例可以正常工作,但連接到新實例失敗:

d:\1>sqlcmd -Sfde-hq-wk4 -Usa -Pdbasql -Q"select @@version select @@servername"
-------------------------------------------------------------------------------------------------
Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86)
        Mar 29 2009 10:27:29
        Copyright (c) 1988-2008 Microsoft Corporation
        Express Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
-------------------------------------------------------------------------------------------------
FDE-HQ-WK4\SQLEXPRESS

d:\1>sqlcmd -Sfde-hq-wk4\sql2014 -Usa -Pdbasql -Q"select @@version select @@servername"
HResult 0xFFFFFFFF, Level 16, State 1
SQL Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].
Sqlcmd: Error: Microsoft SQL Native Client : An error has occurred while establishing a connectio
the default settings SQL Server does not allow remote connections..
Sqlcmd: Error: Microsoft SQL Native Client : Login timeout expired.

d:\1>

使用TCP套接字庫連接到命名實例時,客戶端將使用兩種方法來確定要連接到的端口。

  1. 它將連接到TCP 1433以與SQL Server的默認實例進行通信。 默認實例的職責之一是跟蹤所有命名實例以及它們當前正在偵聽的端口。
  2. 它將連接到UDP 1434以與SQL Browser服務進行通信。 SQL Browser的職責之一是跟蹤所有命名實例及其當前正在偵聽的端口。

如果客戶端無法連接到任何一個,則連接嘗試將失敗。 在這種情況下,您需要在連接中指定端口號。 就你而言。 sqlcmd -S fde-hq-wk4\\sql2014失敗,因為默認實例和SQL Browser均未運行。

實際上,您的答案表明您正在默認端口上運行命名實例fde-hq-wk4 \\ sql2014。 此命名實例不跟蹤實例和端口分配。 因此,您的“不幸行為”聽起來像是您不幸選擇安裝的結果。

至於為什么在本地運行時該連接起作用的原因,在這種情況下,它可能使用了SHared Memory網絡庫。

簡短的答案-如果您不想運行SQL Browser(它發送大量廣播流量,因此大多數人都將其禁用),然后在連接字符串中硬編碼端口號。

我同意格林斯通·沃克的觀點。 默認情況下,SQL Express不啟用TCP / IP協議。 您可以登錄到SQL Server配置管理器,選擇已安裝實例下的協議,然后檢查是否啟用了TCP / IP。 如果未啟用,請啟用它並檢查設置。 您將需要重新啟動SQL服務以應用更改。

以下工作正常:

C:\1>sqlcmd -Sfde-hq-wk4\sql2014 -Upacrat -Ppacratdba -Q "select @@version selec
t @@servername"
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : SQL Server Network Inte
...
 SQL Server Books Online..

C:\1>sqlcmd -Sfde-hq-wk4\sql2014,1433 -Upacrat -Ppacratdba -Q "select @@version
select @@servername"
------------------------------------------------------------
Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86)
        Mar 29 2009 10:27:29
        Copyright (c) 1988-2008 Microsoft Corporation
        Express Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
------------------------------------------------
FDE-HQ-WK4\SQLEXPRESS

C:\\ 1>

謝謝大家,並請記住這種不幸的Express Edition行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM