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

94

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? : /

Keram
la source
Avez-vous vérifié si le service de serveur SQL est en cours d'exécution?
Pilgerstorfer Franz

Réponses:

76

très simple. notez le PID sqlsrvr.exe de taskmanager puis exécutez cette commande:

netstat -ano | findstr *PID*

il affichera les connexions TCP et UDP de votre serveur SQL (y compris les ports). La norme est 1433 pour TCP et 1434 pour UDP

exemple : entrez la description de l'image ici

mantas mileris
la source
3
Cela a fonctionné pour moi "à l'envers": il fallait trouver le numéro de port (non par défaut) de la machine distante à laquelle j'étais connecté dans SSMS.
leqid
57

C'est celui qui fonctionne pour moi:

SELECT DISTINCT 
    local_tcp_port 
FROM sys.dm_exec_connections 
WHERE local_tcp_port IS NOT NULL 
Stefan Steiger
la source
39

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

entrez la description de l'image ici

abedurftig
la source
8

Si vous avez exécuté "netstat -a -b -n" (à partir d'une invite de commandes avec élévation de privilèges) 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é.

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

Accédez aux services SQL Server. Dans le volet de droite, recherchez SQL Server (). Est-ce que c'est arrêté? Si tel est le cas, démarrez-le.

Accédez à Configuration réseau SQL Server (ou Configuration réseau SQL Server (32 bits) selon le cas), puis Protocoles pour. Dans le volet de droite, recherchez "TCP / IP". Est-il 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.

Veuillez également noter que vous n'avez pas besoin 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 de mémoire partagée (si le client est sur le même ordinateur) ou la bibliothèque réseau Named Pipes.

Marcheur de Greenstone
la source
3

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

Jetez un œil au Gestionnaire de configuration SQL Server pour voir quels protocoles il utilise.

Podiluska
la source
Configuration de SQL Native Client? TCP / IP est activé. Mais le port par défaut est défini sur 1433: /
keram
@keram Non - c'est pour les clients. Vous voulez l'utilitaire de configuration du serveur.
podiluska
où je peux trouver cette configuration?
keram
2

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. capturer le trafic réseau Wireshark(exécutez en tant qu'administrateur, sélectionnez Interface réseau), tout en ouvrant la connexion au serveur.
  2. Trouvez l'adresse IP avec ping
  3. filtrer avec ip.dst == x.x.x.x

Le port est affiché dans la colonne infoau formatsrc.port -> dst.port

fbehrens
la source
2

Voici 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
Jim Pierce
la source
1

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

Baie
la source
1

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
Krishna Dhakate
la source
0

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

Programmes SQL Server 2005 | SQL Server | Gestionnaire de configuration SQL Server | Sélectionnez Protocoles pour MSSQLSERVER ou sélectionnez Protocoles client et cliquez avec le bouton droit sur TCP / IP

Donna Collins
la source
0
select * from sys.dm_tcp_listener_states 

Plus ici: https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-tcp-listener-states-transact-sql?view=sql-server -2017

Vladimir Bashutin
la source
Veuillez préciser votre réponse.
Harsh Wardhan
Bien que ce lien puisse vous aider à répondre à la question, vous pouvez améliorer cette réponse en prenant des parties vitales du lien et en les mettant dans votre réponse, cela garantit que votre réponse est toujours une réponse si le lien est changé ou supprimé :)
WhatsThePoint
0

Une autre option pourrait être de lire le registre Windows. En utilisant PowerShell, vous pouvez faire quelque chose comme ceci:

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

entrez la description de l'image ici Assurez-vous d'exécuter ce script PowerShell dans le serveur hôte (qui héberge votre instance SQL / installation SQL Server), ce qui signifie que vous devez d'abord RDP dans SQL Server / Box / VM, puis exécuter ce code.

HTH

Eddie Kumar
la source