¿No puedo conectarme a mi SQL Server 2008 local?

18

Acabo de instalar SQL Server 2008 y no puedo conectarme a él con SQL Server Management Studio. Mi intención es simplemente permitir que mi usuario local de Windows se autentique, pero no estoy totalmente seguro de cómo hacerlo .

En el diálogo de conexión estoy escribiendo:

Server type: Database Engine
Server name: (local)
Authentication: Windows Authentication

Mi primera pregunta sería si eso es a lo que debo conectarme. Cuando intento conectarme, aparece este mensaje de error:

TITLE: Connect to Server
------------------------------

Cannot connect to (local).

------------------------------
ADDITIONAL INFORMATION:

A network-related or instance-specific error occurred while establishing a connection
to SQL Server. The server was not found or was not accessible. Verify that the instance 
name is correct and that SQL Server is configured to allow remote connections.
(provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
(Microsoft SQL Server, Error: 2)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=2&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

Fui a la URL que se muestra allí y básicamente dice "asegúrese de que el servidor SQL se esté ejecutando". Creo que sí, pero no estoy totalmente seguro.

He desactivado el Firewall de Windows (este es Windows 7 7100 x86). También he cambiado el sistema de inicio de sesión en el Administrador de configuración de SQL Server, pero parece que no es un problema de inicio de sesión, pero ni siquiera puedo abrirle el socket. En esa misma herramienta he habilitado todos los protocolos en "Configuración de red de SQL Server" -> "Protocolos para SQLEXPRESS" sin suerte. Me quedo sin ideas. ¿Qué más puedo probar?

pupeno
fuente
Parece que la verdadera respuesta aquí fue la instancia con nombre. . \ SqlExpress dot significa localhost y \ SqlExpress es la instancia a la que desea conectarse. Para aquellos que no saben, puede tener más de un servidor SQL en una máquina. SqlExpress en este caso, es solo el nombre, en lugar de una indicación estricta del tipo o versión estricta del producto.
p.campbell

Respuestas:

23

Ok, ¿puede abrir su consola de servicios y desplazarse hacia abajo para S para SQL Server. Ahora debería ver los servicios. Asegúrese de que SQL Server (SQLEXPRESS) se esté ejecutando y luego intente. \ SQLEXPRESS en lugar de (local).

Entonces, según su ejemplo:

Server type: Database Engine
Server name: .\SQLEXPRESS
Authentication: Windows Authentication

Espero que esto ayude

Actualización: Estas instrucciones se deben a que supongo que está ejecutando Express Edition, no la edición Dev / Std / Ent de SQL Server


Intente asegurarse de que los protocolos apropiados estén habilitados:

  1. Inicie el Administrador de configuración de SQL (es decir: Inicio-> Programas-> SQL Server-> Herramientas de configuración)
  2. Expanda la configuración de SQL Native Client
  3. Haga clic en Protocolos de cliente (puede tener 32 bits y 64 bits, aplicar a ambos)
  4. Asegúrese de que la memoria compartida, TCP / IP, canalizaciones con nombre estén habilitadas en ese orden
  5. Expandir la configuración de red de SQL Server
  6. Asegúrese de que la memoria compartida para SQLEXPRESS y / o MSSQLSERVER esté habilitada
  7. Haga clic en Servicios de SQL Server
  8. Reinicie los servicios en ejecución.

Ahora debería poder iniciar sesión en la instancia


Si descubre que no puede iniciar sesión, es posible que deba seguir estas instrucciones para que SQL Server entre en modo de usuario único. Consulte aquí las instrucciones completas de Microsoft.

De forma predeterminada, sqlservr.exe se encuentra en C: \ Archivos de programa \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ Binn. Si se instala una segunda instancia de SQL Server, una segunda copia de sqlservr.exe se encuentra en un directorio como

C: \ Archivos de programa \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ binn.

Puede iniciar una instancia de SQL Server utilizando sqlservr.exe desde una instancia diferente, pero SQL Server también iniciará la versión de la instancia incorrecta, incluidos los paquetes de servicio, que pueden conducir a resultados inesperados.

Para evitar esto, use el comando cambiar directorio (cd) de MS-DOS para moverse al directorio correcto antes de iniciar sqlservr.exe, como se muestra en el siguiente ejemplo.

cd \ Archivos de programa \ Microsoft SQL Server \ MSSQL10_50.1 \ MSSQL \ Binn

Para iniciar la instancia predeterminada de SQL Server en modo de usuario único desde un símbolo del sistema

Desde un símbolo del sistema, ingrese el siguiente comando:

sqlservr.exe -m

El modo de usuario único puede ser útil para realizar tareas de mantenimiento de emergencia cuando no desea que otros usuarios se conecten a SQL Server, pero cualquier usuario puede convertirse en usuario único, incluido el servicio del Agente SQL Server.

Ahora debería poder iniciar sesión en la instancia y agregarse a la pestaña de seguridad y otorgar acceso completo.

Metodo alternativo:

Hay un script aquí que las reclamaciones para agregar el usuario actual a la función sysadmin de SQL Server. Esto puede funcionar en modo de usuario único, pero no lo he verificado

Wayne
fuente
¿Es la Consola de servicios la pestaña Servicios en el Administrador de tareas de Windows? (Win7). De todos modos, SQLEXPRESS no está allí, ¿cómo lo ejecuto?
pupeno
1
La consola de servicio es inicio-> panel de control-> herramientas administrativas-> servicios
Wayne
No importa eso, he encontrado la consola de Servicios, SQLEXPRESS se está ejecutando.
pupeno
Conectando a. \ SQLEXPRESS hizo el truco. Muchas gracias Wayne!
pupeno
1
Muchas gracias ... se estaba volviendo loco tratando de resolver esto! (Nota para los demás en ". \ SQLEXPRESS" ... "SQLEXPRESS" es el ID de instancia que le dio al servidor durante la instalación.
RiddlerDev
0

(local) se resuelve en 127.0.0.1 y funciona solo para los valores predeterminados. Las instancias, como la predeterminada para SQL Server Express, necesitan un nombre real. Tenga en cuenta que puede verificar el registro de errores de SQL Server (carpeta de instalación de SQL, luego registrar) y una de las primeras entradas le dará la IP, el puerto y el nombre de la instancia.

Entonces podrías usar esos en su lugar. Los nombres de instancia son buenos para usar, ya que son bastante consistentes. Tenga en cuenta que también utilizan puertos dinámicos, por lo que podría ser un puerto diferente en cada reinicio. El Administrador de configuración de SQL Server puede establecer un puerto específico. No estoy seguro acerca de las herramientas Express.

Steve Jones
fuente