Come trovare la porta in esecuzione di SQL Server?


94

Sì, ho letto questo Come trovare la porta per MS SQL Server 2008?

senza fortuna.

telnet 1433

restituisce la connessione non riuscita, quindi devo specificare un'altra porta.

Ho provato a usare

netstat -abn

ma non vedo sqlservr.exe o qualcosa di simile in questo elenco.

Perché è così difficile trovare quella porta? : /


Hai controllato se il server SQL servizio è in esecuzione?
Pilgerstorfer Franz

Risposte:



76

molto semplice. prendere nota del PID sqlsrvr.exe da taskmanager quindi eseguire questo comando:

netstat -ano | findstr *PID*

mostrerà le connessioni TCP e UDP del tuo server SQL (comprese le porte) lo standard è 1433 per TCP e 1434 per UDP

esempio : inserisci qui la descrizione dell'immagine


3
Questo ha funzionato per me "al contrario": necessario per trovare il numero di porta (non predefinito) della macchina remota a cui ero connesso in SSMS.
leqid

57

Questo è quello che funziona per me:

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

39

Se puoi avviare Sql Server Configuration Manager> Configurazione di rete SQL Server> La tua istanza> TCP / IP> Proprietà

inserisci qui la descrizione dell'immagine


8

Se hai eseguito "netstat -a -b -n" (da un prompt dei comandi con privilegi elevati) e non vedi affatto "sqlservr.exe", il tuo servizio SQL Server non è in esecuzione o la sua libreria di rete TCP / IP è Disabilitato.

Eseguire Gestione configurazione SQL Server (Start | Tutti i programmi | Microsoft SQL Server 2008 | Strumenti di configurazione).

Accedi ai servizi di SQL Server. Nel riquadro di destra cerca SQL Server (). È fermato? Se è così, avvialo.

Passare a Configurazione di rete di SQL Server (o Configurazione di rete di SQL Server (32 bit) a seconda dei casi), quindi Protocolli per. Nel riquadro di destra cerca "TCP / IP". È disabilitato? In tal caso, abilitalo, quindi riavvia il servizio SQL Server.

Notare che l'ID istanza sarà MSSQLSERVER per l'istanza predefinita.

Si noti inoltre che non è necessario abilitare la libreria di rete TCP / IP per connettere un client al servizio. I client possono anche connettersi tramite la libreria di rete Shared Memory (se il client si trova sulla stessa macchina) o la libreria di rete Named Pipes.


3

Forse non sta usando TCP / IP

Dai un'occhiata a SQL Server Configuration Manager per vedere quali protocolli sta usando.


Configurazione di SQL Native Client? TCP / IP è abilitato. Ma la porta predefinita è impostata su 1433: /
keram

@keram No, questo è per i clienti. Vuoi l'utilità di configurazione del server.
podiluska

dove posso trovare quella configurazione?
Keram


2

Nella nostra azienda non ho accesso a MSSQL Server, quindi non posso accedere alle tabelle di sistema.

Quello che funziona per me è:

  1. catturare il traffico di rete Wireshark(eseguire come amministratore, selezionare Interfaccia di rete), mentre si apre la connessione al server.
  2. Trova l'indirizzo IP con ping
  3. filtra con ip.dst == x.x.x.x

La porta è mostrata nella colonna infonel formatosrc.port -> dst.port


2

Questo è un altro script che utilizzo:

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

Prova ad abilitare il protocollo tramite: Configuration Manager > Configurazione di rete del server SQL > Protocolli per MSSQLSERVER > proprietà di TCP / IP


1

prova una volta: -

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

Programmi SQL Server 2000 | MS SQL Server | Utilità di rete client | Seleziona TCP_IP quindi Proprietà

Programmi SQL Server 2005 | SQL Server | Gestione configurazione SQL Server | Seleziona Protocolli per MSSQLSERVER o seleziona Protocolli client e fai clic con il pulsante destro del mouse su TCP / IP


0

Per favore elabora la tua risposta.
Harsh Wardhan

Sebbene questo collegamento possa aiutarti nella tua risposta alla domanda, puoi migliorare questa risposta prendendo parti vitali del collegamento e inserendole nella tua risposta, questo assicura che la tua risposta sia ancora una risposta se il collegamento viene modificato o rimosso :)
WhatsThePoint

0

Un'altra opzione potrebbe essere quella di leggere il registro di Windows. Usando PowerShell puoi fare qualcosa del genere:

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

inserisci qui la descrizione dell'immagine Assicurati di eseguire questo script PowerShell nel server host (che ospita la tua istanza SQL / installazione di SQL Server), il che significa che devi prima eseguire il RDP in SQL Server / Box / VM, quindi eseguire questo codice.

HTH

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.