2011-07-03 12 views
8

Sé que debemos tener en cuenta estas frases, pero de repente todas mis conexiones a localhost\sqlexpress dejaron de funcionar. Como .\sqlexpress y (local)\sqlexpress funcionan, esto no sería un gran problema si no fuera por el hecho de que estoy trabajando en un proyecto de equipo donde todas las cadenas de conexión están definidas en el formato anterior. Y, obviamente, tengo dificultades para aceptar que ya no debería funcionar, así que pasé varias horas analizando y reinstalando varias versiones de SQL Server sin éxito. (Y en el camino rompiendo los proyectos de DB en VS2010, así que necesitaba reinstalar también ...).No se puede conectar a la base de datos usando localhost sqlserver

Pero aquí están los detalles. Como ya se mencionó, no pude conectarme al localhost\sqlexpress, sino al .\sqlexpress. Los mismos síntomas que utilizan SQL Server Manager y las cadenas de conexión para la implementación y la ejecución de servicios wcf. Curiosamente, la resolución de la instancia predeterminada como localhost funciona.

Lo primero es lo primero, sí, el SQL Server se está ejecutando y solo para asegurarse de que habilité TCP/IP y configuré el puerto fijo en 1433 aunque funciona en el equipo de mis colegas con TCP/IP deshabilitado. (En alguna parte del camino leí que localhost se puede resolver usando memoria compartida cuando uso el cliente SQL nativo, así que supongo que eso es lo que está sucediendo en su sistema)

La instalación es solo una instancia de SQL Server Express 2008 R2 y VS2010 en Windows 7 Professional.

Puesta en marcha de SQL Express el registro de errores dice:

Server is listening on [ 'any' <ipv6> 1433]. 
Server is listening on [ 'any' <ipv4> 1433]. 

Netstat dice (extracto):

TCP 0.0.0.0:1433   Machinenename:0    LISTENING 
TCP [::]:1433    Machinenename:0    LISTENING 

Tomo nota de la ausencia de cualquier 127.0.0.1:1433 y UDP en el puerto 1433

Para diagnosticar el problema uso sqlcmd para saber qué transporte se usa :

1. localhost \ sqlexpress

sqlcmd -Slocalhost\sqlexpress -> Shared memory 
sqlcmd -Stcp:localhost\sqlexpress -> SQL Server Network Interfaces: Error Locating Server/Instance Specified 

No se puede conectar a localhost \ sqlexpress desde SQL Server Management Studio aunque especifique la memoria compartida como protocolo

2. localhost

sqlcmd -Slocalhost -> TCP 
sqlcmd -Stcp:localhost -> TCP 

Se puede conectar a localhost desde SQL Server Management S tudio

3. (local) \ sqlexpress

sqlcmd -S(local)\sqlexpress -> Shared memory 
sqlcmd -Stcp:(local)\sqlexpress -> SQL Server Network Interfaces: Error Locating Server/Instance Specified 

se puede conectar a (local) \ sqlexpress desde SQL Server Management Studio

Así que estoy perdido aquí. Cualquier ayuda es muy apreciada.

Respuesta

2

¿Ha verificado que la memoria compartida está habilitada en el Administrador de configuración de SQL Server, en Configuración de red del servidor SQL | Protocolos?

Cuando desactivo el protocolo "Memoria compartida", se agota el tiempo de "sqlcmd -S. \ Sqlexpress". Habilitarlo hace que el comando funcione bien.

Un pensamiento más ... El puerto 1434 se utiliza para el servicio de descubrimiento de SQL Server, que permite que programas como SQL Management Studio y otros descubran que SQL Server se está ejecutando en la máquina. Solo una cosa más para investigar.

4

en MS SQL, vaya a Herramientas de configuración -> Administrador de configuración de SQL Server Configuración Seleccionar red de SQL Server -> Seleccione el protocolo en la ventana del lado derecho habilitar TCP/IP y reiniciar los servicios en services.msc luego tratar para conectarse a localhost \ sqlexpress

0

Tuvimos este problema. Por alguna razón, en esta máquina, se había creado un Alias ​​que dirigía el nombre del servidor que estábamos usando (localhost \ SQL2008_R2) a un servidor que ya no existía.

Una vez que eliminamos el Alias, todo funcionó.

Los alias son un nodo de árbol en el Administrador de configuración de SQL Server.

SQL Server Configuration Manager Alias Node

Cuestiones relacionadas