cambiar - ¿Cómo encontrar el puerto para MS SQL Server 2008?
sql server port (13)
Estoy ejecutando MS SQL Server 2008 en mi máquina local. Sé que el puerto predeterminado es 1433 pero de alguna manera no está escuchando en este puerto. El SQL es una edición Express.
Ya he intentado el registro, el SQL Server Management Studio, el registro y el procedimiento almacenado extendido para encontrar el puerto. Pero no pude encontrarlo Por favor, ayúdame. Gracias.
Además de lo que se menciona arriba, tuve que habilitar los puertos TCP y UDP para que SQLExpress se conectara remotamente. Como tengo tres instancias diferentes en mi máquina de desarrollo, 1430-1435
para TCP y UDP.
Aquí hay 5 metodos que encontré:
- Método 1: Administrador de configuración de SQL Server
- Método 2: Visor de eventos de Windows
- Método 3: Registros de errores de SQL Server
- Método 4: sys.dm_exec_connections DMV
- Método 5: Lectura del registro usando xp_instance_regread
Método 4: sys.dm_exec_connections DMV
Creo que esta es casi la forma más fácil ...
Los DMV devuelven el estado del servidor que se puede usar para supervisar la instancia de SQL Server. Podemos usar sys.dm_exec_connections DMV para identificar el número de puerto que SQL Server Instance está escuchando utilizando el siguiente código T-SQL:
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étodo 1: Administrador de configuración de SQL Server
Paso 1. Haga clic en Inicio> Todos los programas> Microsoft SQL Server 2012> Herramientas de configuración> Administrador de configuración de SQL Server
Paso 2. Vaya a SQL Server Configuration Manager> Configuración de red de SQL Server> Protocolos para
Paso 3. Haz clic derecho en TCP / IP y selecciona Propiedades
Paso 4. En el cuadro de diálogo Propiedades de TCP / IP, vaya a la pestaña Direcciones IP y desplácese hacia abajo hasta IPTodo el grupo.
Si SQL Server está configurado para ejecutarse en un puerto estático, estará disponible en el cuadro de texto Puerto TCP, y si está configurado en un puerto dinámico, el puerto actual estará disponible en el cuadro de texto Puertos dinámicos TCP. Aquí mi instancia está escuchando en el número de puerto 61499.
Los otros métodos que puede encontrar aquí: http://sqlandme.com/2013/05/01/sql-server-finding-tcp-port-number-sql-instance-is-listening-on/
En el registro ERROLOG para una línea como a continuación. Si no lo ve, SQL Server no está habilitado para acceso remoto, o simplemente no es a través de TCP. Puede cambiar esto a través del Administrador de configuración de SQL Server.
Server is listening on [ 192.128.3.2 <ipv4> 1433].
Esto también se puede hacer a través de un escaneo de puertos, que es el único método posible si no tiene acceso de administrador a un servidor remoto.
El uso de Nmap ( http://nmap.org/zenmap/ ) para hacer un "escaneo TCP intenso" le dará resultados como este para todas las instancias en el servidor:
[10.0.0.1/DATABASE]
Instance name: DATABASE
Version: Microsoft SQL Server 2008 R2 RTM
Product: Microsoft SQL Server 2008 R2
Service pack level: RTM
TCP port: 49843
Named pipe: //10.0.0.1/pipe/MSSQL$DATABASE/sql/query
Nota importante: Para probar con el analizador de consultas o MS SQL Server Management Studio, debe configurar el nombre y el puerto de su servidor de forma diferente a como lo haría normalmente con un puerto, a través de HTTP, por ejemplo, usando una coma en lugar de dos puntos .
- Nombre del servidor de Management Studio:
10.0.0.1,49843
- Cadena de conexión:
Data Source=10.0.0.1,49843
sin embargo
- Cadena de conexión JDBC:
jdbc:microsoft:sqlserver://10.0.0.1:49843;DatabaseName=DATABASE
Me encontré con esto porque tenía problemas para crear una conexión remota y no podía entender por qué la configuración del puerto 1433 en el firewall no está haciendo el trabajo. Finalmente tengo la imagen completa ahora, así que pensé que debería compartir.
En primer lugar, es imprescindible habilitar "TCP / IP" utilizando el Administrador de configuración de SQL Server en Protocolos para SQLEXPRESS.
Cuando se usa una instancia con nombre ("SQLExpress" en este caso), escuchará en un puerto dinámico. Para encontrar este puerto dinámico, tienes un par de opciones; para nombrar unos pocos:
verificando
ERRORLOG
de SQL Server ubicado en''{MS SQL Server Path}/{MS SQL Server instance name}/MSSQL/Log''
(dentro encontrará una línea similar a esto:"2013-07-25 10:30:36.83 Server Server is listening on [ ''any'' <ipv4> 51118]"
-> entonces 51118 es el puerto dinámico en este caso.comprobación de registro:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Server/{MSSQL instance name}/MSSQLServer/SuperSocketNetLib/Tcp/IPAll
, para mi casoTcpDynamicPorts=51118
.Editar :
{MSSQL instance name}
es algo así como:MSSQL10_50.SQLEXPRESS
, no soloSQLEXPRESS
Por supuesto, permitir este puerto TCP en el firewall y crear una conexión remota al pasar: "xxxx,51118"
(donde xxxx es la ip del servidor) ya lo resuelve en este punto.
Pero luego quise conectar de forma remota al pasar el nombre de la instancia (por ejemplo: xxxx/SQLExpress
). Esto es cuando el servicio del navegador SQL entra en juego. Esta es la unidad que resuelve el nombre de la instancia en el puerto 51118. El servicio del navegador SQL escucha en el puerto UDP 1434 (estándar y estático), así que tuve que permitir esto también en el firewall del servidor.
Para ampliar un poco la respuesta real: si alguien más no le gustan los puertos dinámicos y quiere un puerto estático para su instancia de SQL Server, debería probar este link .
Pruebe esto (se requiere acceso a sys.dm_exec_connections
):
SELECT DISTINCT
local_tcp_port
FROM sys.dm_exec_connections
WHERE local_tcp_port IS NOT NULL
Puede usar estos dos comandos: tasklist
y netstat -oan
Tasklist.exe
es como taskmgr.exe
pero en modo texto.
Con tasklist.exe
o taskmgr.exe
puede obtener un PID de sqlservr.exe
Con netstat -oan
, muestra un PID de conexión, y usted puede filtrarlo.
Ejemplo:
C:/>tasklist | find /i "sqlservr.exe"
sqlservr.exe 1184 Services 0 3.181.800 KB
C:/>netstat -oan | find /i "1184"
TCP 0.0.0.0:1280 0.0.0.0:0 LISTENING 1184
En este ejemplo, el puerto SQLServer es 1280
Extraído de: http://www.sysadmit.com/2016/03/mssql-ver-puerto-de-una-instancia.html
Resolví el problema habilitando el TCP / IP con el Administrador de configuración de SQL Server en Protocolos para SQLEXPRESS2008, reinicié el servicio y ahora el "Servidor está escuchando" aparece en el archivo ERRORLOG
También podrías mirar con un
netstat -abn
Da a los puertos la aplicación correspondiente que los mantiene abiertos.
Editar : o TCPView .
Uso la siguiente secuencia de comandos en SSMS
SELECT
s.host_name
,c.local_net_address
,c.local_tcp_port
,s.login_name
,s.program_name
,c.session_id
,c.connect_time
,c.net_transport
,c.protocol_type
,c.encrypt_option
,c.client_net_address
,c.client_tcp_port
,s.client_interface_name
,s.host_process_id
,c.num_reads as num_reads_connection
,c.num_writes as num_writes_connection
,s.cpu_time
,s.reads as num_reads_sessions
,s.logical_reads as num_logical_reads_sessions
,s.writes as num_writes_sessions
,c.most_recent_sql_handle
FROM sys.dm_exec_connections AS c
INNER JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
--filter port number
--WHERE c.local_tcp_port <> 1433
This funciona para SQL Server 2005 - 2012. Busque el evento id = 26022 en el registro de errores en las aplicaciones. Esto mostrará el número de puerto del servidor sql y las direcciones IP a las que tienen acceso.
Haga clic en el botón Start
en Windows. Vaya a All Programs -> Microsoft SQL Server 2008 -> Configuration Tools -> SQL Server Configuration Manager
Haga clic en SQL Native Client 10.0 Configuration -> Client Protocols -> TCP/IP
haga doble clic (haga clic con el botón derecho en seleccionar Properties
) en TCP/IP
Encontrarás el Default Port 1433
.
Dependiendo de la conexión, el número de puerto puede variar.
USE master
GO
xp_readerrorlog 0, 1, N''Server is listening on'', ''any'', NULL, NULL, N''asc''
GO
[Identificar el puerto utilizado por la instancia nombrada del motor de base de datos de SQL Server mediante la lectura de los registros de error de SQL Server]