web-dev-qa-db-fra.com

Comment trouver le port en cours d'exécution SQL Server?

Oui, j'ai lu ceci Comment trouver le port pour MS SQL Server 2008?

pas de chance.

telnet 1433

renvoie la connexion a échoué, je dois donc spécifier un autre port.

J'ai essayé d'utiliser

netstat -abn

mais je ne vois pas sqlservr.exe ou quelque chose de similaire sur cette liste.

Pourquoi est-ce si difficile de trouver ce port? : /

67
keram

Essaye ça:

USE master
GO
xp_readerrorlog 0, 1, N'Server is listening on' 
GO

http://www.mssqltips.com/sqlservertip/2495/identify-sql-server-tcp-ip-port-being-used/

121
AnandPhadke

très simple. notez le PID sqlsrvr.exe dans le gestionnaire de tâches puis exécutez la commande suivante: 

netstat -ano | findstr *PID*

il affichera TCP et les connexions UDP de votre serveur SQL (ports compris) standard est 1433 pour TCP et 1434 pour UDP

exemple : enter image description here

64
mantas mileris

C'est celui qui fonctionne pour moi:

SELECT DISTINCT 
    local_tcp_port 
FROM sys.dm_exec_connections 
WHERE local_tcp_port IS NOT NULL 
45
Stefan Steiger

Si vous pouvez démarrer le Gestionnaire de configuration Sql Server> Configuration réseau SQL Server> Votre instance> TCP/IP> Propriétés

 enter image description here

32
dasnervtdoch

Si vous avez exécuté "netstat -a -b -n" (à partir d'une invite de commande élevée) et que vous ne voyez pas du tout "sqlservr.exe", votre service SQL Server n'est pas en cours d'exécution ou sa bibliothèque réseau TCP/IP est désactivée.

Exécutez le Gestionnaire de configuration SQL Server (Démarrer | Tous les programmes | Microsoft SQL Server 2008 | Outils de configuration).

Naviguez vers les services SQL Server . Dans le volet de droite, recherchez SQL Server (). Est-ce arrêté? Si oui, lancez-le.

Accédez à Configuration réseau SQL Server (ou à la configuration réseau SQL Server (32 bits, selon le cas)), puis à Protocoles pour . Dans le volet de droite, recherchez "TCP/IP". Est-ce désactivé? Si tel est le cas, activez-le, puis redémarrez le service SQL Server.

Notez que l'ID d'instance sera MSSQLSERVER pour l'instance par défaut.

Notez également qu'il n'est pas nécessaire d'activer la bibliothèque réseau TCP/IP pour connecter un client au service. Les clients peuvent également se connecter via la bibliothèque réseau Shared Memory (si le client est sur le même ordinateur) ou la bibliothèque réseau Named Pipes.

8
Greenstone Walker

Peut-être qu'il n'utilise pas TCP/IP

Examinez le Gestionnaire de configuration SQL Server pour connaître les protocoles qu’il utilise.

3
podiluska

Dans notre entreprise, je n'ai pas accès à MSSQL Server. Je ne peux donc pas accéder aux tables système.

Ce qui fonctionne pour moi c'est:

  1. capturez le trafic réseau Wireshark (exécuté en tant qu'administrateur, sélectionnez Interface réseau) lors de l'ouverture de la connexion au serveur.
  2. Trouvez l'adresse IP avec ping
  3. filtrer avec ip.dst == x.x.x.x 

Le port est indiqué dans la colonne info au format src.port -> dst.port

2
fbehrens

Essayez d'activer le protocole en: Gestionnaire de configuration > Configuration réseau du serveur SQL > Protocoles pour MSSQLSERVER > propriétés de TCP/IP  

1
Berry

C'est un autre script que j'utilise:

-- 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
0
Jim Pierce

Voici un rapide script PowerShell (car personne n’a encore fourni de solution dans PowerShell :))

Ceci affiche le numéro de port exact, par exemple: " Sql Server écoute sur le port: 1433 "

$id = (ps "sql*" | ? {$_.ProcessName -eq "sqlservr"}).Id
$strAllSQLConnections = netstat -ano | findstr $id
$port = $strAllSQLConnections | % { if($_ -match "0\.0\.0\.0:\d{2,5}") {$Matches[0]} }
$port = ($port -split ':')[1]
cls
Write-Host "Sql Server is listening on port: " $port

Cela fonctionne très bien pour moi, je suis heureux pour quiconque d'étendre le code pour ajouter des fonctionnalités. HTH

0
Eddie Kumar

essayez une fois: - 

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

SQL Server 2000 Programmes | MS SQL Server | Utilitaire réseau client | Sélectionnez TCP_IP puis Propriétés 

SQL Server 2005 Programmes | SQL Server | Gestionnaire de configuration SQL Server | Sélectionnez Protocols for MSSQLSERVER ou sélectionnez Client Protocols et cliquez avec le bouton droit sur TCP/IP.

0
Donna Collins
0
Vladimir Bashutin

PowerShell au format Nice et permettant de distinguer les processus:

ForEach ($SQL_Proc in Get-Process | Select-Object -Property ProcessName, Id | Where-Object {$_.ProcessName -like "*SQL*"})
{
    Get-NetTCPConnection | `
     Where-Object {$_.OwningProcess -eq $SQL_Proc.id} | `
      Select-Object -Property `
                                @{Label ="Process_Name";e={$SQL_Proc.ProcessName}}, `
                                @{Label ="Local_Address";e={$_.LocalAddress + ":" + $_.LocalPort }},  `
                                @{Label ="Remote_Address";e={$_.RemoteAddress + ":" + $_.RemotePort}}, State | `
      Format-Table
}

Sortie par défaut:

enter image description here

0
Bartosz X