Sql-Server

未指定 tcp/port 的 SQL Server 連接

  • January 23, 2022

在我的實驗室(Azure VM)中突然出現連接問題:

SQL 2016, sp1, cu4, Windows 2016 Datacenter

用於 SQL AG 測試的 Windows 故障轉移群集。

SQLServer-0:

預設實例(埠1431

Inst1(港口1499

SQLServer-1:

預設實例(埠1431

Inst1(港口1499

從 開始SQLServer-0,我只能使用tcp:SQLServer-1, 1431(或tcp:SQlServer-1.kevinsdomain.com,1431)連接到遠端實例。

命名實例也是如此。

SQLServer-1到也是一樣SQLServer-0

僅對 NetBIOS 名稱進行 Ping 就可以正常工作,ping -a解析 FQDN。

這些都沒有在埠上執行1433,兩台伺服器都在執行 SQL 瀏覽器NT Authority\Local Service

這是我的測試域,以及域控制器、DNS 等。

每個上的 Windows 防火牆都打開了所有需要的埠,包括 UDP 1434

我敢肯定有一些簡單的東西我忘了檢查,沖洗,不管。就是想不出來。

在此處輸入圖像描述

只是為了澄清您的問題…您希望連接到任一伺服器上的實例而無需指定埠號?

在這種情況下,您是否檢查過實例名稱是否已添加到您的 SQL 配置管理器中?

  1. 打開 SQL 配置管理器
  2. 展開“SQL Native Client 配置”
  3. 選擇“別名”
  4. 看看你想連接的實例是否存在,如果不存在,為該實例創建別名

希望我能回答你的問題…

這些都沒有在埠 1433 上執行,兩台伺服器都在 NT Authority\Local Service 下執行 SQL Browser

執行 SQL 服務來偵聽 port# 不是強制性的1433,似乎這些埠是根據您的情況定制的,這從安全形度來看是好的。此外,SQL Browser如果您有 SQL 服務(命名實例)的固定埠並且您在連接中提到該埠,則不需要服務,即hostname,1499

僅對 NetBIOS 名稱進行 Ping 就可以正常工作, ping -a 解析 FQDN

我認為您還應該嘗試telnet SQLServer-0 1499確認 SQL 服務正在偵聽特定埠並且未被防火牆阻止,這些步驟可能有助於進一步排除故障

用於 SQL AG 測試的 Windows 故障轉移群集

在這種情況下,您不僅需要檢查Endpoint portsSQL 埠。獲取配置的端點SELECT type_desc, port FROM sys.TCP_endpoints

引用自:https://dba.stackexchange.com/questions/202585