¿Cómo encontrar el puerto de ejecución de SQL Server?

Respuestas:

76

muy simple. tome nota del PID sqlsrvr.exe del administrador de tareas y luego ejecute este comando:

netstat -ano | findstr *PID*

mostrará las conexiones TCP y UDP de su servidor SQL (incluidos los puertos). El estándar es 1433 para TCP y 1434 para UDP

ejemplo: ingrese la descripción de la imagen aquí

mantas mileris
fuente
3
Esto funcionó para mí "al revés": necesitaba encontrar el número de puerto (no predeterminado) de la máquina remota a la que estaba conectado en SSMS.
leqid
57

Este es el que me funciona:

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

Si puede iniciar el Administrador de configuración del servidor Sql> Configuración de red de SQL Server> Su instancia> TCP / IP> Propiedades

ingrese la descripción de la imagen aquí

abedurftig
fuente
8

Si ha ejecutado "netstat -a -b -n" (desde un símbolo del sistema elevado) y no ve "sqlservr.exe" en absoluto, entonces su servicio SQL Server no se está ejecutando o su biblioteca de red TCP / IP está discapacitado.

Ejecute el Administrador de configuración de SQL Server (Inicio | Todos los programas | Microsoft SQL Server 2008 | Herramientas de configuración).

Vaya a Servicios de SQL Server. En el panel de la derecha, busque SQL Server (). ¿Está detenido? Si es así, inícielo.

Vaya a Configuración de red de SQL Server (o Configuración de red de SQL Server (32 bits) según corresponda) y luego Protocolos para. En el panel de la derecha, busque "TCP / IP". ¿Está discapacitado? Si es así, habilítelo y luego reinicie el servicio SQL Server.

Tenga en cuenta que el ID de instancia será MSSQLSERVER para la instancia predeterminada.

Tenga en cuenta también que no tiene que habilitar la biblioteca de red TCP / IP para conectar un cliente al servicio. Los clientes también pueden conectarse a través de la biblioteca de red de memoria compartida (si el cliente está en la misma máquina) o la biblioteca de red de Named Pipes.

Caminante de piedra verde
fuente
3

Quizás no esté usando TCP / IP

Eche un vistazo al Administrador de configuración de SQL Server para ver qué protocolos está usando.

podiluska
fuente
¿Configuración de SQL Native Client? TCP / IP está habilitado. Pero el puerto predeterminado está configurado en 1433: /
keram
@keram No, eso es para los clientes. Quiere la utilidad de configuración del servidor.
Podiluska
¿Dónde puedo encontrar esa configuración?
keram
2

En nuestra empresa no tengo acceso al servidor MSSQL, por lo que no puedo acceder a las tablas del sistema.

Lo que me funciona es:

  1. capturar el tráfico de la red Wireshark(ejecutar como Administrador, seleccionar Interfaz de red), mientras abre la conexión al servidor.
  2. Encuentra la dirección IP con ping
  3. filtrar con ip.dst == x.x.x.x

El puerto se muestra en la columna infocon el formatosrc.port -> dst.port

fbehrens
fuente
2

Este es otro script que uso:

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

Tratar de activar el protocolo por: Configuración Manger > Configuración de red del servidor SQL > Protocolos para MSSQLSERVER > propiedades de TCP / IP

Baya
fuente
1

trata una vez:-

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

Programas de SQL Server 2000 | MS SQL Server | Utilidad de red del cliente | Seleccione TCP_IP y luego Propiedades

Programas de SQL Server 2005 | SQL Server | Administrador de configuración de SQL Server | Seleccione Protocolos para MSSQLSERVER o seleccione Protocolos de cliente y haga clic derecho en TCP / IP

Donna Collins
fuente
0
select * from sys.dm_tcp_listener_states 

Más allí: 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
fuente
Por favor, elabore su respuesta.
Harsh Wardhan
Si bien este enlace puede ayudarlo en su respuesta a la pregunta, puede mejorar esta respuesta tomando partes vitales del enlace y poniéndola en su respuesta, esto asegura que su respuesta siga siendo una respuesta si el enlace se cambia o elimina :)
WhatsThePoint
0

Otras opciones podrían ser leer el Registro de Windows. Usando PowerShell puede hacer algo como esto:

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

ingrese la descripción de la imagen aquí Asegúrese de ejecutar este script de PowerShell en el servidor host (que aloja su instancia de SQL / instalación de SQL Server), lo que significa que primero debe RDP en SQL Server / Box / VM y luego ejecutar este código.

HTH

Eddie Kumar
fuente