Wie finde ich den laufenden SQL Server-Port?


94

Ja, ich habe dies gelesen. Wie finde ich den Port für MS SQL Server 2008?

kein Glück.

Telnet 1433

Rückgabeverbindung fehlgeschlagen, daher muss ich einen anderen Port angeben.

Ich habe versucht zu benutzen

netstat -abn

aber ich sehe keine sqlservr.exe oder ähnliches auf dieser Liste.

Warum ist es so schwierig, diesen Hafen zu finden? : /


Haben Sie überprüft, ob der SQL Server- Dienst ausgeführt wird?
Pilgerstorfer Franz

Antworten:



76

sehr einfach. Notieren Sie sich die PID sqlsrvr.exe vom Task-Manager und führen Sie den folgenden Befehl aus:

netstat -ano | findstr *PID*

Es werden TCP- und UDP-Verbindungen Ihres SQL-Servers (einschließlich Ports) angezeigt. Der Standard ist 1433 für TCP und 1434 für UDP

Beispiel: Geben Sie hier die Bildbeschreibung ein


3
Dies funktionierte bei mir "umgekehrt": Erforderlich, um die (nicht standardmäßige) Portnummer des Remote-Computers zu ermitteln, mit dem ich in SSMS verbunden war.
Leqid

57

Dies ist derjenige, der für mich funktioniert:

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

39

Wenn Sie SQL Server Configuration Manager> SQL Server-Netzwerkkonfiguration> Ihre Instanz> TCP / IP> Eigenschaften starten können

Geben Sie hier die Bildbeschreibung ein


8

Wenn Sie "netstat -a -b -n" (an einer Eingabeaufforderung mit erhöhten Rechten) ausgeführt haben und "sqlservr.exe" überhaupt nicht sehen, wird entweder Ihr SQL Server-Dienst nicht ausgeführt oder seine TCP / IP-Netzwerkbibliothek behindert.

Führen Sie SQL Server Configuration Manager aus (Start | Alle Programme | Microsoft SQL Server 2008 | Konfigurationstools).

Navigieren Sie zu SQL Server Services. Suchen Sie im rechten Bereich nach SQL Server (). Ist es gestoppt? Wenn ja, starten Sie es.

Navigieren Sie zu SQL Server-Netzwerkkonfiguration (oder SQL Server-Netzwerkkonfiguration (32-Bit)) und dann zu Protokollen für. Suchen Sie im rechten Bereich nach "TCP / IP". Ist es deaktiviert? Wenn ja, aktivieren Sie es und starten Sie den SQL Server-Dienst neu.

Beachten Sie, dass die Instanz-ID für die Standardinstanz MSSQLSERVER ist.

Beachten Sie außerdem, dass Sie die TCP / IP-Netzwerkbibliothek nicht aktivieren müssen, um einen Client mit dem Dienst zu verbinden. Clients können auch über die Shared Memory-Netzwerkbibliothek (wenn sich der Client auf demselben Computer befindet) oder die Named Pipes-Netzwerkbibliothek eine Verbindung herstellen.


3

Möglicherweise wird kein TCP / IP verwendet

Sehen Sie sich den SQL Server Configuration Manager an, um zu sehen, welche Protokolle er verwendet.


SQL Native Client Konfiguration? TCP / IP ist aktiviert. Aber Standardport ist auf 1433 eingestellt: /
Keram

@keram Nein - das ist für Kunden. Sie möchten die Serverkonfiguration nutzen.
Podiluska

Wo finde ich diese Konfiguration?
Keram


2

In unserem Unternehmen habe ich keinen Zugriff auf MSSQL Server, daher kann ich nicht auf die Systemtabellen zugreifen.

Was für mich funktioniert ist:

  1. Erfassen Sie den Netzwerkverkehr Wireshark(als Administrator ausführen, Netzwerkschnittstelle auswählen), während Sie die Verbindung zum Server herstellen.
  2. Finden Sie die IP-Adresse mit ping
  3. filtern mit ip.dst == x.x.x.x

Der Port wird in der Spalte infoim Format angezeigtsrc.port -> dst.port


2

Dies ist ein weiteres Skript, das ich verwende:

-- 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

Versuchen Sie, das Protokoll zu aktivieren, indem Sie: Konfigurationsmanager > SQL Server-Netzwerkkonfiguration > Protokolle für MSSQLSERVER > Eigenschaften von TCP / IP verwenden


1

Versuch es einmal:-

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

SQL Server 2000-Programme | MS SQL Server | Client-Netzwerkdienstprogramm | Wählen Sie TCP_IP und dann Eigenschaften

SQL Server 2005-Programme | SQL Server | SQL Server Configuration Manager | Wählen Sie Protokolle für MSSQLSERVER oder Client-Protokolle und klicken Sie mit der rechten Maustaste auf TCP / IP


0

Bitte erläutern Sie Ihre Antwort.
Harsh Wardhan

Während dieser Link bei der Beantwortung der Frage hilfreich sein kann, können Sie diese Antwort verbessern, indem Sie wichtige Teile des Links in Ihre Antwort einfügen. Dadurch wird sichergestellt, dass Ihre Antwort immer noch eine Antwort ist, wenn der Link geändert oder entfernt wird :)
WhatsThePoint

0

Eine andere Möglichkeit könnte darin bestehen, die Windows-Registrierung zu lesen. Mit PowerShell können Sie Folgendes tun:

#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."

Geben Sie hier die Bildbeschreibung ein Stellen Sie sicher, dass Sie dieses PowerShell-Skript auf dem Host-Server ausführen (der Ihre SQL-Instanz / SQL Server-Installation hostet). Dies bedeutet, dass Sie zuerst RDP in SQL Server / Box / VM ausführen und dann diesen Code ausführen müssen.

HTH

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.