110 votes

Comment trouver le port pour MS SQL Server 2008 ?

J'exécute MS SQL Server 2008 sur ma machine locale. Je sais que le port par défaut est le 1433 mais, pour une raison ou une autre, il n'écoute pas sur ce port. Le serveur SQL est une édition Express.

J'ai déjà essayé le journal, SQL Server Management Studio, le registre et la procédure stockée étendue pour trouver le port. Mais, je n'ai pas pu le trouver. Veuillez m'aider. Merci.

0 votes

Je mets à jour la question avec d'autres ressources que j'ai consultées afin d'en avoir des repères et que d'autres puissent en faire usage également. blogs.msdn.com/sql_protocols/archive/2008/11/05/ decipherinfosys.wordpress.com/2008/01/02/ dumbledad.wordpress.com/2008/07/09/

0 votes

J'utilise la vue TCP pour voir le port sur lequel il fonctionne. Je suis surpris de voir que le serveur prend un port dynamique au lieu de 1433 même après l'avoir installé comme instance par défaut. J'ai également désinstallé l'édition express et installé l'édition complète, après quoi je ne peux voir que le processus sqlservr.exe:5272. Et je suppose qu'il écoute sur le port 5272.

143voto

udaykiran pulipati Points 1804

Cliquez sur Start dans Windows.

Aller à All Programs -> Microsoft SQL Server 2008 -> Configuration Tools -> SQL Server Configuration Manager

Cliquez sur SQL Native Client 10.0 Configuration -> Client Protocols -> TCP/IP double-clic ( clic droit sélectionner Properties ) sur TCP/IP .

Vous trouverez Default Port 1433 .

Selon la connexion, le numéro de port peut varier.

1 votes

Sur mon ordinateur, sous Windows 10 et avec SQL Server 2012 Express installé, SQL Server Configuration Manager n'est pas répertorié dans le menu de démarrage de Windows, mais peut être trouvé dans l'onglet Gestion des ordinateurs dans le snap-in MMC sous le Services et applications groupe. Le port dynamique ne se trouve pas non plus sous l'élément "SQL native client configuration" (qui est la version "11.0" pour moi) mais sous l'élément "SQL native client configuration". Configuration réseau du serveur SQL (et sur le Adresses IP de l'onglet TCP/IP fenêtre des propriétés du protocole, tout en bas, dans le paramètre Ports dynamiques TCP ).

0 votes

Cette réponse fait référence au port client, et non au port serveur, qui est ce qui est demandé dans la question originale. La réponse de @brothers28 ci-dessous est plus précise.

52voto

rslite Points 17279

Vous pouvez aussi regarder avec un

netstat -abn

Il donne les ports avec l'application correspondante qui les maintient ouverts.

Modifier : ou TCPView .

0 votes

Pouvez-vous me faire savoir sous quel nom MS SQL Server 2008 est nommé en tant qu'application ?

2 votes

Ce devrait être sqlservr.exe (je n'en ai pas pour vérifier cependant).

1 votes

Cela a fonctionné pour moi. Le numéro de port est sur la ligne au-dessus de [sqlservr.exe].

49voto

brothers28 Points 400

Voici 5 méthodes que j'ai trouvées :

  • Méthode 1 : SQL Server Configuration Manager
  • Méthode 2 : L'observateur d'événements de Windows
  • Méthode 3 : Journaux d'erreurs du serveur SQL
  • Méthode 4 : DMV sys.dm_exec_connections
  • Méthode 5 : Lecture du registre en utilisant xp_instance_regread

Méthode 4 : DMV sys.dm_exec_connections
Je pense que c'est presque le moyen le plus facile...
Les DMV renvoient l'état du serveur qui peut être utilisé pour surveiller l'instance de SQL Server. Nous pouvons utiliser sys.dm_exec_connections DMV pour identifier le numéro de port sur lequel l'instance de SQL Server écoute en utilisant le code T-SQL ci-dessous :

SELECT local_tcp_port
FROM   sys.dm_exec_connections
WHERE  session_id = @@SPID
GO

Result Set:
local_tcp_port
61499

(1 row(s) affected)

Méthode 1 : SQL Server Configuration Manager

Étape 1. Cliquez sur Démarrer > Tous les programmes > Microsoft SQL Server 2012 > Outils de configuration > SQL Server Configuration Manager

Étape 2. Allez dans SQL Server Configuration Manager > SQL Server Network Configuration > Protocols for

Étape 3. Cliquez avec le bouton droit de la souris sur TCP/IP et sélectionnez Propriétés.

enter image description here

Étape 4. Dans la boîte de dialogue Propriétés de TCP/IP, allez à l'onglet Adresses IP et faites défiler jusqu'au groupe IPAll.

enter image description here

Si le serveur SQL est configuré pour fonctionner sur un port statique, il sera disponible dans la zone de texte Port TCP, et s'il est configuré sur un port dynamique, le port actuel sera disponible dans la zone de texte Ports dynamiques TCP. Ici, mon instance écoute sur le port numéro 61499.

Les autres méthodes sont disponibles ici : http://sqlandme.com/2013/05/01/sql-server-finding-tcp-port-number-sql-instance-is-listening-on/

1 votes

Cela a fonctionné pour moi. J'ai essayé les propriétés TCP/IP de SQL Native Client Configuration et j'ai obtenu la valeur par défaut 1433. Mais quand j'ai vérifié les ports dynamiques TCP de la configuration réseau du serveur SQL. J'ai trouvé le port 67244. Et après cela, j'ai pu me connecter avec succès à ce port. +1

17voto

Learner Points 841

Je suis tombé sur ce sujet parce que je venais d'avoir des problèmes pour créer une connexion à distance et je ne comprenais pas pourquoi la configuration du port 1433 dans le pare-feu ne faisait pas l'affaire. J'ai enfin compris la situation, et j'ai pensé que je devais la partager.

Tout d'abord, il est nécessaire d'activer "TCP/IP" en utilisant le gestionnaire de configuration du serveur SQL sous Protocoles pour SQLEXPRESS !

Lorsqu'une instance nommée est utilisée ("SQLExpress" dans ce cas), elle écoutera sur un port dynamique. Pour trouver ce port dynamique, vous avez plusieurs options ; pour n'en citer que quelques-unes :

  • vérification de ERRORLOG de SQL Server situé dans '{MS SQL Server Path}\{MS SQL Server instance name}\MSSQL\Log' (à l'intérieur, vous trouverez une ligne similaire à celle-ci : "2013-07-25 10:30:36.83 Server Server is listening on [ 'any' <ipv4> 51118]" --> donc 51118 est le port dynamique dans ce cas.

  • vérification du registre : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{MSSQL instance name}\MSSQLServer\SuperSocketNetLib\Tcp\IPAll pour mon cas TcpDynamicPorts=51118 .

    Modifier : {MSSQL instance name} est quelque chose comme : MSSQL10_50.SQLEXPRESS non seulement SQLEXPRESS

Bien sûr, en autorisant ce port TCP dans le pare-feu et en créant une connexion à distance en passant par l'entrée : "x.x.x.x,51118" (où x.x.x.x est l'ip du serveur) résout déjà le problème à ce stade.

Mais ensuite, j'ai voulu me connecter à distance en passant le nom de l'instance (par ex : x.x.x.x\SQLExpress ). C'est à ce moment que le service SQL Browser entre en jeu. C'est l'unité qui résout le nom de l'instance dans le port 51118. Le service SQL Browser écoute sur le port UDP 1434 (standard et statique), j'ai donc dû l'autoriser également dans le pare-feu du serveur.

Pour étendre un peu la réponse actuelle : si quelqu'un d'autre n'aime pas les ports dynamiques et veut un port statique pour son instance SQL Server, il devrait essayer ceci lien .

1 votes

+1 pour le service SQL Browser. C'est la clé du fonctionnement de SQL Express avec les numéros de port.

11voto

mrdenny Points 3359

Dans le journal ERROLOG, recherchez une ligne comme celle ci-dessous. Si vous ne la voyez pas, c'est que le serveur SQL n'est pas activé pour l'accès à distance ou qu'il ne passe pas par TCP. Vous pouvez modifier cela via le gestionnaire de configuration du serveur SQL.

Server is listening on [ 192.128.3.2 <ipv4> 1433].

0 votes

Je ne vois pas ce journal, mais dans le Management Studio de SQL Server, sous Connections, la case "Allow remote connections to this server" est cochée. Je comprends donc que la connexion à distance est autorisée.

0 votes

@royal : En plus de l'option 'autoriser les connexions à distance', vous devez également activer le protocole TCP. Actuellement, le serveur n'écoute probablement que NP

0 votes

Voir la réponse ci-dessous de @morteza pour lire le journal via une requête SQL xp_readerrorlog 0, 1, N'Server is listening on'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X