Jak znaleźć działający port SQL Server?


94

Tak, przeczytałem. Jak znaleźć port dla MS SQL Server 2008?

brak szczęścia.

telnet 1433

zwraca połączenie nie powiodło się, więc muszę określić inny port.

Próbowałem użyć

netstat -abn

ale nie widzę sqlservr.exe ani czegoś podobnego na tej liście.

Dlaczego tak trudno jest znaleźć ten port? : /


Czy sprawdziłeś, czy usługa Sql Server jest uruchomiona?
Pilgerstorfer Franz,

Odpowiedzi:



76

bardzo prosty. zanotuj identyfikator PID programu sqlsrvr.exe z menedżera zadań, a następnie uruchom następujące polecenie:

netstat -ano | findstr *PID*

pokaże połączenia TCP i UDP twojego serwera SQL (w tym porty) standard to 1433 dla TCP i 1434 dla UDP

przykład: wprowadź opis obrazu tutaj


3
To zadziałało dla mnie "na odwrót": potrzebne do znalezienia (nie domyślnego) numeru portu maszyny zdalnej, z którą byłem połączony w SSMS.
leqid

57

To jest ten, który działa dla mnie:

SELECT DISTINCT 
    local_tcp_port 
FROM sys.dm_exec_connections 
WHERE local_tcp_port IS NOT NULL 

39

Jeśli możesz uruchomić Menedżera konfiguracji serwera Sql> Konfiguracja sieci programu SQL Server> Twoje wystąpienie> TCP / IP> Właściwości

wprowadź opis obrazu tutaj


8

Jeśli uruchomiłeś "netstat -a -b -n" (z wiersza poleceń z podwyższonym poziomem uprawnień) i nie widzisz w ogóle "sqlservr.exe", oznacza to, że usługa SQL Server nie jest uruchomiona lub jej biblioteka sieciowa TCP / IP jest niepełnosprawny.

Uruchom Menedżera konfiguracji programu SQL Server (Start | Wszystkie programy | Microsoft SQL Server 2008 | Narzędzia konfiguracyjne).

Przejdź do usług SQL Server. W prawym okienku poszukaj SQL Server (). Czy to się zatrzymało? Jeśli tak, zacznij.

Przejdź do SQL Server Network Configuration (lub SQL Server Network Configuration (32-bit), odpowiednio), a następnie Protocols for. W prawym okienku poszukaj „TCP / IP”. Czy to jest wyłączone? Jeśli tak, włącz ją, a następnie uruchom ponownie usługę SQL Server.

Zauważ, że ID instancji będzie MSSQLSERVER dla domyślnej instancji.

Należy również pamiętać, że nie musisz włączać biblioteki sieciowej TCP / IP, aby połączyć klienta z usługą. Klienci mogą również łączyć się za pośrednictwem biblioteki sieciowej pamięci współużytkowanej (jeśli klient znajduje się na tym samym komputerze) lub biblioteki sieciowej potoków nazwanych.


3

Może nie używa protokołu TCP / IP

Przyjrzyj się Menedżerowi konfiguracji programu SQL Server, aby zobaczyć, jakich protokołów używa.


Konfiguracja klienta macierzystego SQL? TCP / IP jest włączony. Ale domyślny port jest ustawiony na 1433: /
keram

@keram Nie - to dla klientów. Chcesz narzędzia do konfiguracji serwera.
podiluska

gdzie mogę znaleźć tę konfigurację?
keram


2

W naszym przedsiębiorstwie nie mam dostępu do serwera MSSQL, więc nie mogę uzyskać dostępu do tabel systemowych.

U mnie działa:

  1. przechwytywanie ruchu sieciowego Wireshark(uruchom jako Administrator, wybierz Interfejs sieciowy), podczas otwierania połączenia z serwerem.
  2. Znajdź adres IP za pomocą ping
  3. filtruj za pomocą ip.dst == x.x.x.x

Port jest pokazany w kolumnie infow formaciesrc.port -> dst.port


2

Oto kolejny skrypt, którego używam:

-- Find Database Port script by Jim Pierce  09/05/2018

USE [master]
GO

DECLARE @DynamicportNo NVARCHAR(10);
DECLARE @StaticportNo NVARCHAR(10);
DECLARE @ConnectionportNo INT;

-- Look at the port for the current connection
SELECT @ConnectionportNo = [local_tcp_port]
 FROM sys.dm_exec_connections
    WHERE session_id = @@spid;

-- Look for the port being used in the server's registry
EXEC xp_instance_regread @rootkey = 'HKEY_LOCAL_MACHINE'
                        ,@key =
                         'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll'
                        ,@value_name = 'TcpDynamicPorts'
                        ,@value = @DynamicportNo OUTPUT

EXEC xp_instance_regread @rootkey = 'HKEY_LOCAL_MACHINE'
                        ,@key =
                         'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll'
                        ,@value_name = 'TcpPort'
                        ,@value = @StaticportNo OUTPUT

SELECT [PortsUsedByThisConnection] = @ConnectionportNo
      ,[ServerStaticPortNumber] = @StaticportNo
      ,[ServerDynamicPortNumber] = @DynamicportNo
GO

1

Spróbuj włączyć protokół przez: Menedżer konfiguracji > Serwer SQL Konfiguracja sieci > Protokoły dla MSSQLSERVER > właściwości TCP / IP


1

spróbuj raz: -

USE master
DECLARE       @portNumber   NVARCHAR(10)
EXEC   xp_instance_regread
@rootkey    = 'HKEY_LOCAL_MACHINE',
@key        =
'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll',
@value_name = 'TcpDynamicPorts',
@value      = @portNumber OUTPUT
SELECT [Port Number] = @portNumber
GO

0

Programy SQL Server 2000 | MS SQL Server | Narzędzie sieciowe klienta | Wybierz TCP_IP, a następnie Właściwości

Programy SQL Server 2005 | SQL Server | Menedżer konfiguracji programu SQL Server | Wybierz Protocols for MSSQLSERVER lub wybierz Client Protocols i kliknij prawym przyciskiem myszy TCP / IP


0

Opisz swoją odpowiedź.
Harsh Wardhan

Chociaż ten link może pomóc w odpowiedzi na pytanie, możesz poprawić tę odpowiedź, biorąc istotne części linku i umieszczając je w swojej odpowiedzi, dzięki temu Twoja odpowiedź będzie nadal odpowiedzią, jeśli link zostanie zmieniony lub usunięty :)
WhatsThePoint

0

Inną opcją może być odczytanie rejestru systemu Windows. Używając PowerShell możesz zrobić coś takiego:

#Get SQL instance's Port number using Windows Registry:
$instName = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances[0]
$tcpPort = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$instName\MSSQLServer\SuperSocketNetLib\Tcp").TcpPort
Write-Host The SQL Instance:  `"$instName`"  is listening on `"$tcpPort`"  "TcpPort."

wprowadź opis obrazu tutaj Upewnij się, że ten skrypt PowerShell jest uruchamiany na serwerze hosta (który obsługuje Twoje wystąpienie SQL / instalację programu SQL Server), co oznacza, że ​​musisz najpierw uruchomić RDP na serwerze SQL / Box / VM, a następnie uruchomić ten kod.

HTH

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.