2012-02-28 18 views
6

Un problema muy misterioso que se avecina: PNo se puede acceder a una instancia de SQL Server 2008 R2 de forma remota

Tengo un servidor configurado con una dirección IP estática. He instalado SQL Server 2008 R2 con instancia adicional (ITAPP). Ahora Cuando utilizo el IP para acceder a las siguientes SQL Server cosas sucede: Máquina

Cliente:

sqlcmd -S XXX.XXX.XXX.XXX -U sa -P mypass 

conectado con éxito ....

Pero cuando se utiliza:

sqlcmd -S XXX.XXX.XXX.XXX\ITAPP -U sa -P mypass 

HResult 0xFFFFFFFF, Level 16, State 1 SQL Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].

Sqlcmd: Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server.

When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections..

Sqlcmd: Error: Microsoft SQL Native Client : Login timeout expired.

Incluso en la misma máquina (donde está instalado SQL Server) utilizando SQL Server Management Studi o He desactivado mi firewall en ambas máquinas, incluso he permitido que todos los protocolos para ITAPP (memoria compartida, canalizaciones con nombre, TCP/IP) también establezcan Allow Remote connection en verdadero.

Una cosa más cuando uso 127.0.0.1\SQLITRAX para conectarme a la máquina del servidor se conecta de inmediato.

Por favor, ayúdame a salir de este lío :)

+1

¿Por qué su mensaje de error dice SQL 2005 si está usando 2008? – Simon

+0

sql server 2008 – Wasif

Respuesta

16

Tal vez sea porque se trata de una instancia con nombre en una servidor remoto.
La instancia nombrada no utiliza el puerto Tcp 1433 estándar de SQL Server, solo la instancia predeterminada (sin nombre) usa el puerto 1433.
Cualquier otra instancia "nombrada" simplemente escucha en otro puerto.
Por lo tanto, debe verificar el configurador del servidor SQL, en el que está escuchando el puerto TCP, y luego decirle al cliente que se conecte a este puerto.
decir que su instancia con nombre está escuchando el puerto 12345, entonces el cliente debe conectarse con el siguiente comando

sqlcmd -S XXX.XXX.XXX.XXX,12345 -U sa -P mypass 

cuando se especifica el puerto TCP, entonces no es necesario el nombre de la instancia.
Según tengo entendido, el nombre de la instancia es una forma de que los servicios de SQL Server encuentren el puerto TCP que esta instancia con nombre está escuchando.
Pero para que esto funcione su cliente necesita ser capaz de acceder a esos otros servicios que resuelven el nombre de instancia de SQL Server (tal vez es el navegador Agente/SQL Server SQL Server, pero no estoy seguro)

Actualización
Aquí hay una captura de pantalla que muestra dónde establecer el puerto TPC para una instancia con nombre SQL Server. How to check the TPC listening port of a SQL Server named instance

Entonces, ¿qué puerto TCP es su instancia con nombre de SQL Server?

+1

Acabo de actualizar la respuesta con una captura de pantalla, aquí es donde buscar el puerto TCP que su servidor está escuchando en – Max

+0

Gracias MAX para su ayuda – Wasif

+0

Gracias por la pista sobre el puerto. Básicamente casi resolvió mi problema. Lo único que tenía que hacer era crear una regla de entrada para este puerto específico en el Firewall de Windows y el asistente de seguridad avanzada. – MacGyver

3

El servicio Explorador de SQL Server tiene que ser accesible para poder conectarse a las instancias con nombre.

Ver this article para obtener más información sobre lo que hace y qué puertos para abrir en el cortafuegos

Este technet article proporciona un script muy útil para abrir todos los puertos necesarios

+0

ya hicimos eso – Wasif

+0

también verificó el virus de escáner? –

Cuestiones relacionadas