No puedo conectarme a la base de datos SQL de mis servidores a través de una dirección IP

45

He configurado un servidor que ejecuta Windows Server 2008 y tiene instalado SQL Server 2008 Express.

Puedo conectarme a la base de datos SQL Server Express de la máquina a través de MACHINENAME/SQLEXPRESS.

Sin embargo, cuando llegamos a conectarnos a través de cualquier software o script usando una dirección IP , no permitirá la conexión.

Yo he tratado:

  • Apagar el cortafuegos.
  • Permitir conexiones remotas para la base de datos SQL.
  • Habilitación de TCP / IP dentro de la configuración de SQL.

Cuando intentamos conectarnos a través del software 'SQL Server Management Studio', recibimos el siguiente mensaje:

Mensaje de error:

Se ha producido un error al establecer una conexión con el servidor. Cuando se conecta a SQL Server 2005, esta falla puede deberse al hecho de que, en la configuración predeterminada, SQL Server no permite conexiones remotas. (proveedor: Proveedor TCP, error: 0 - No se pudo establecer conexión porque la máquina de destino lo rechazó activamente) (Microsoft SQL Server, Error: 10061)

Se estableció con éxito una conexión con el servidor, pero luego ocurrió un error durante el proceso de inicio de sesión. (proveedor: proveedor TCP, error: 0: el software de su máquina host anuló una conexión establecida). (Microsoft SQL Server, error: 10053)

¿Puede decirme cuándo está libre para que podamos echar un vistazo porque parece que estoy entendiendo dónde? Modifiqué los detalles según alguna información que UK Fast me envió, pero me dijeron "No está dentro del ámbito de soporte". , por lo que no pueden ayudar más.

Espero escuchar de usted.

Shaun Swales
fuente
¿Has intentado agregar el número de puerto al conectarte?
¿Estás intentando conectarte a "192.168.0.1/SQLEXPRESS" (donde 192.168.0.1 es realmente la dirección IP de tu servidor ) o estás omitiendo el nombre de la instancia?
Rowland Shaw
2
¿Realmente estás usando una barra inclinada /y no una barra invertida `\`?
Aaron Bertrand

Respuestas:

78

SQL Server se instala como instancia con nombre, por lo que en primer lugar intente conectarse a su servidor utilizando el siguiente nombre de servidor: IP Address\SQLEXPRESS.
Cuando instala SQL Server como instancia con nombre, utiliza puertos TCP / IP dinámicos de manera predeterminada, por lo que no es posible conectarse a él sin especificar el nombre de la instancia (solo la dirección IP). Si necesita conectarse a su servidor sin usar el nombre de la instancia, debe reconfigurar su servidor para usar el puerto TCP estático. Para hacerlo, realice lo siguiente:

  1. abra el Administrador de configuración de SQL Server;
  2. cambiar a la SQL Server Network Configuration | Protocols for SQLEXPRESS;
  3. haga doble clic en el TCP/IPprotocolo;
  4. seleccione el Yesvalor en el Enabledcampo;
  5. cambia a la IP Addressespestaña;
  6. encuentra la IPAllsección;
  7. borrar el TCP Dynamic Portscampo en esa sección;
  8. especifique el 1433valor en el TCP Portcampo:
    ingrese la descripción de la imagen aquí
  9. reinicie su servidor
    Intente conectarse a su servidor utilizando solo su dirección IP.
levitologista
fuente
77
Gracias por proporcionar esa información, funciona bien, excepto por una cosa. En sql management studio todavía tengo que proporcionar el puerto para conectarme al servidor, como xxxx \ instance, 1433. Creo que es un poco raro ya que estoy usando el puerto estándar.
Tomas Jansson
1
Funcionó para mí, excepto exactamente lo contrario de lo que informó @TomasJansson: funciona en Management Studio sin un número de puerto, pero tengo que especificar uno en mi cadena de conexión, incluso si estoy usando el puerto predeterminado (1433).
lpacheco
Además de la excelente respuesta anterior, en SQL Server 2017, me di cuenta de que no puede dejar el campo de contraseña de usuario (especialmente sa) en blanco. Asegúrese de tener una configuración de contraseña; de lo contrario, no se conectará.
aLearner el
USE netstat -a -b y busque el sqlservr.exe y ASEGÚRESE de que el puerto sea 1433. No siempre es el caso. Te volverás loco de lo contrario.
jwize
8

Debe habilitar, siguiendo para mí el problema resuelto habilitando el seguimiento y reiniciando todos los servicios.

  • Memoria compartida
  • TCP / IP
  • Tubos con nombre

Tuberías con nombre de configuración de SQL Server

Baljeetsingh
fuente
8

Al usar SQL Server Express 2017, además de las respuestas anteriores, cuando intente conectarse usando el puerto, asegúrese de usar la sintaxis de coma , no la sintaxis de dos puntos, es decir:

 MyServerName,1433\InstanceName

Después de luchar con lo anterior durante un par de horas, siguiendo todas las sugerencias, y aún no se conecta, utilicé lo anterior y se conectó de inmediato a través del SQL Server Management Studio de forma remota. Un primer paso para el éxito.

Puntilla
fuente
1
Esto me lo arregló (moviendo el puerto entre el nombre del servidor y el nombre de la instancia). Entrar al puerto al final no funcionó.
masospaghetti
1

Pude conectarme de forma remota especificando explícitamente el número de puerto dinámico, sin embargo, esto obviamente no es lo ideal.

Parece que el problema era que el servicio del navegador SQL Server estaba deshabilitado. Una vez que habilité e inicié este servicio, pude conectarme de forma remota simplemente especificando el nombre del host y el nombre de la instancia.

RobSiklos
fuente
0

Simplemente agregando a lo que se ha dicho anteriormente. Tuve el mismo problema de no poder conectarme al servidor (cliente y servidor en el mismo escritorio) y ejecuté todos los pasos enumerados aquí tratando de solucionarlo. Sin embargo, eventualmente descubrí cuál era el problema. Todo lo que tenía que hacer era ir al estudio de administración del servidor SQL y hacer clic en "Servicios del servidor SQL" y luego hacer un solo clic en el servidor al que necesitaba conectarme. Luego haga clic en el botón verde 'ejecutar'. No estoy seguro de si esto era específico para mí ya que mi computadora estaba funcionando y accediendo al servidor, ¡espero que ayude a cualquier otra persona!

Donde está el botón ejecutar / iniciar

Kuolema
fuente
1
¿Cómo demonios ha sido tan subestimado este comentario? simple y solucionado mi problema asswell
Cavid Hummatov