Sql-Server

更改 IP 後無法從其他機器通過 SSMS 連接到 SQL Server

  • August 31, 2018

sql server 上發生了 ip 更改,之後我無法從其他機器 ssms 連接,但可以在本地連接。

伺服器上的防火牆被禁用,此外它在埠 1433 上的偵聽和所有網路協議都是開放的命名管道、共享記憶體和 tcpip。

TCP/IP 屬性 IPAII - TCP 埠設置為 1433 並且 TCP 動態埠為空白

我錯過了什麼嗎?

可能的解決方案

  1. 更改 IP 地址後是否**重新啟動 SQL Server 實例?**如果不是,則 SQL Server 可能仍在偵聽舊 IP 地址。
  2. 在本地連接時,您通常使用共享記憶體連接,這就是您能夠在本地連接但不能從遠端連接的原因(參見 1.)。共享記憶體連接不需要 IP 地址。您可以在本地連接後通過執行以下查詢來驗證這一點:
select 
   sdec.net_transport, 
   sdec.session_id, 
   sdes.login_name 
from sys.dm_exec_connections as sdec 
join sys.dm_exec_sessions as sdes 
   on sdec.session_id = sdes.session_id

可能的輸出:

net_transport session_id  login_name
-------------------------------------------------
TCP           51          NT SERVICE\ReportServer  
Shared memory 52          Domain\Account
Shared memory 55          NT SERVICE\SQLSERVERAGENT
Shared memory 54          NT SERVICE\SQLSERVERAGENT
Shared memory 53          NT SERVICE\SQLSERVERAGENT
Session       55          NT SERVICE\SQLSERVERAGENT
Session       55          NT SERVICE\SQLSERVERAGENT
Shared memory 56          NT SERVICE\ReportServer
Shared memory 57          Domain\Account

TCP = IP Connection
Shared memory = Local Connection

您的本地連接將顯示為共享記憶體連接。 3. 在嘗試連接之前,您是否刷新了其他伺服器/電腦上的 DNS 記憶體?有時清理記憶體會解決 IP <> 主機名解析問題:

ipconfig /flushdns
  1. 在 SQL Server 配置管理器中驗證網路配置有助於解決問題。可能的錯誤:
  • IP 地址不存在(參見 1.:重啟實例)
  • IP 地址未配置為偵聽(設置Enabled: YesActive: Yes
  1. 重新啟動 SQL Server 實例後,檢查SQL Server 錯誤日誌文件以驗證它確實在偵聽 TCP 堆棧:
2018-08-30 16:15:47.12 spid15s     Server is listening on [ 'any' &lt;ipv6&gt; 1433].
2018-08-30 16:15:47.13 spid15s     Server is listening on [ 'any' &lt;ipv4&gt; 1433].
2018-08-30 16:15:47.13 spid15s     Server local connection provider is ready to accept connection on [ \\.\pipe\SQLLocal\MSSQLSERVER ].
2018-08-30 16:15:47.13 spid10s     The resource database build version is 12.00.5589. This is an informational message only. No user action is required.
2018-08-30 16:15:47.13 spid15s     Server local connection provider is ready to accept connection on [ \\.\pipe\sql\query ].
2018-08-30 16:15:47.14 Server      Server is listening on [ ::1 &lt;ipv6&gt; 1434].
2018-08-30 16:15:47.15 Server      Server is listening on [ 127.0.0.1 &lt;ipv4&gt; 1434].
2018-08-30 16:15:47.15 Server      Dedicated admin connection support was established for listening locally on port 1434.
2018-08-30 16:15:47.15 SQL Server is now ready for client connections. This is an informational message; no user action is required.

此實例以前未偵聽 TCP 堆棧:

2018-08-24 08:36:09.06 spid15s     Server local connection provider is ready to accept connection on [ \\.\pipe\SQLLocal\MSSQLSERVER ].
2018-08-24 08:36:09.07 spid15s     Server local connection provider is ready to accept connection on [ \\.\pipe\sql\query ].
2018-08-24 08:36:09.08 Server      Server is listening on [ ::1 &lt;ipv6&gt; 1434].
2018-08-24 08:36:09.08 Server      Server is listening on [ 127.0.0.1 &lt;ipv4&gt; 1434].
2018-08-24 08:36:09.08 Server      Dedicated admin connection support was established for listening locally on port 1434.
2018-08-24 08:36:09.09 spid15s     SQL Server is now ready for client connections. This is an informational message; no user action is required.
  1. 可能是防火牆規則未適應伺服器的新 IP 地址。在這種情況下,您必須讓公司的網路部門查看防火牆上的規則並修復伺服器的規則,或者如果您的 Windows 防火牆有問題,請檢查那裡的規則。

(從評論中添加

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