No se puede conectar a localhost en SQL Server Express 2012/2016

97

Acabo de descargar la última versión de SQL Express 2012 pero no puedo conectarme a localhost. Probé la autenticación localhost \ SQLExpress y Windows, pero me da un mensaje de error que dice que no se puede conectar. ¿Me estoy perdiendo de algo? He usado SQL Server 2008 antes y nunca he tenido problemas para conectarme a localhost. Parece que ni siquiera puede encontrarlo. También en los Servicios solo veo un SQL Server VSS Writer. ¿Es esta la forma en que debe ser? ¿O me estoy perdiendo algo? Gracias

travesura
fuente
1
Parece que la instalación no salió bien. ¿Intentaste repararlo / reinstalarlo?
Vikdor
1
¿Está seguro de haber encontrado el instalador para el servidor, en lugar de, digamos, un instalador de Management Studio?
Damien_The_Unbeliever

Respuestas:

181

Según Aaron Bertand :

  1. Debe verificar que el servicio SQL Server se esté ejecutando. Puede hacer esto yendo a Start > Control Panel > Administrative Tools > Servicesy verificando que el servicio SQL Server ( SQLEXPRESS) se esté ejecutando. Si no es así, inícielo.

  2. Mientras está en el subprograma de servicios, asegúrese también de que se haya iniciado el explorador SQL del servicio . Si no es así, inícielo .

  3. Debe asegurarse de que SQL Server pueda usar TCP / IP o canalizaciones con nombre. Puede activarlos abriendo el Administrador de configuración de SQL Server en Start > Programs > Microsoft SQL Server 2012 > Configuration Tools(o SQL Server Configuration Manager) y asegúrese de que TCP / IP y Canalizaciones con nombre estén habilitadas . Si no encuentra el Administrador de configuración de SQL Server en el menú Inicio, puede iniciar el complemento MMC manualmente. Consulte el Administrador de configuración de SQL Server para conocer la ruta al complemento según su versión.

    Administrador de configuración de SQL Server

  4. Verifique que el modo de autenticación de su conexión de SQL Server coincida con su cadena de conexión:

    • Si se está conectando con un nombre de usuario y una contraseña, debe configurar SQL Server para que acepte el "Modo de autenticación de SQL Server":

      -- YOU MUST RESTART YOUR SQL SERVER AFTER RUNNING THIS!
      USE [master]
      GO
      DECLARE @SqlServerAndWindowsAuthenticationMode INT = 2;
      EXEC xp_instance_regwrite
        N'HKEY_LOCAL_MACHINE',
        N'Software\Microsoft\MSSQLServer\MSSQLServer',
        N'LoginMode',
        REG_DWORD,
        @SqlServerAndWindowsAuthenticationMode;
      GO
    • Si se está conectando usando "Integrated Security = true" (Modo Windows), y este error solo aparece cuando se depura en aplicaciones web, entonces debe agregar ApplicationPoolIdentity como un inicio de sesión de SQL Server :
  5. de lo contrario, ejecutar Start -> Run -> Services.mscSi es así, ¿se está ejecutando?

Si no está funcionando entonces

Parece que no instaló todo. Inicie el archivo de instalación y elija la opción "Nueva instalación o agregar características a una instalación existente". Desde allí, debería poder asegurarse de que se instale el servicio del motor de base de datos.

Ravindra Bagale
fuente
2
@dido: Inicio-> Ejecutar-> Services.msc
Ravindra Bagale
3
Otra cosa a comprobar es el nombre de la instancia. Dependiendo de cómo se instaló SQL Server, es posible que necesite o no proporcionar un nombre de instancia después del host.
Arvo Bowen
"TCP / IP y las canalizaciones con nombre están habilitadas" parece ser necesario después de la primera instalación
James A Mohler
3
Fue estúpido, pero para mí, el problema fue usar "localhost" como nombre del servidor y no "localhost \ SQLEXPRESS01" como se estableció en la instalación
Guy s
1
En mi caso, SQLBrowser estaba deshabilitado y la herramienta de configuración no figuraba en la carpeta de herramientas SQL. Para iniciar la herramienta de configuración a través de cmd https://docs.microsoft.com/en-us/sql/relational-databases/sql-server-configuration-manager?view=sql-server-2017 Para iniciar SQLBrowser automáticamente si la configuración la herramienta falla /programming/21375014/i-cannot-start-sql-server-browser
steven87vt
121

Vaya a Inicio -> Programas -> Microsoft SQL ServerYYYY -> Herramientas de configuración -> Administrador de configuración YYYY de SQL Server o ejecute "SQLServerManager12.msc".

Asegúrese de que TCP / IP esté habilitado en Protocolos de cliente.

Luego vaya a "Configuración de red de SQL Server" y haga doble clic en TCP / IP. Haga clic en la pestaña "Direcciones IP" y desplácese hasta la parte inferior. En "IP Todos", elimine los puertos dinámicos TCP si están presentes y configure el puerto TCP en 1433. Haga clic en Aceptar y luego vuelva a "Servicios de SQL Server" y reinicie la instancia de SQL Server. Ahora puedes conectarte a través de localhost, al menos yo podría.

ingrese la descripción de la imagen aquí

Tenga en cuenta que, por supuesto, este error también puede ocurrir cuando se conecta desde otras aplicaciones. Ejemplo de una Web.configcadena de conexión de aplicación web C # normal :

<connectionStrings>
    <add name="DefaultConnection" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>
Ogglas
fuente
4
¡Finalmente, esto funcionó para mí! Había cambiado el puerto en IP1, IP2, ... pero no en IPAll. Eso fue todo, gracias!
George
2
@George exactamente igual que tú. Incluso había desactivado el firewall y nada funcionó. Había un puerto 40xxx en TCP Dynamic Ports. Lo eliminé y puse 1433 en el puerto TCP para IPAll, esto también lo hizo. ¡Gracias!
Alisson
Esta fue la clave para mí también.
Erik Olson
1
Después de muchas horas de golpear mi cabeza contra la pared, esto finalmente funcionó. Gracias.
Top Cat
Gran solucion Me salva el día. ¡Muchas gracias!
Lavande
13

en SQL SERVER EXPRESS 2012 debe usar "(localdb) \ MSSQLLocalDB" como nombre de fuente de datos, por ejemplo, puede usar una cadena de conexión como esta

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;
CENIZA
fuente
10

Tuve un problema similar, tal vez mi solución ayude. Acabo de instalar MSSQL EX 2012 (instalación predeterminada) e intenté conectarme con VS2012 EX. Sin alegría. Luego miré los servicios y confirmé que SQL Server (SQLEXPRESS) se estaba ejecutando.

Sin embargo, vi otro servicio interesante llamado SQL Server Browser que estaba deshabilitado. Lo habilité, lo disparé y luego pude recuperar el nombre del servidor en una nueva conexión en VS2012 EX y conectar.

Es extraño que desactiven un servicio requerido para que VS se conecte.

Michael Lawrence
fuente
No es necesario conectarse; Lo tengo desactivado y puedo conectarme bien. Simplemente facilita las cosas cuando no conoce el nombre de host / instancia preciso al que conectarse, ya que permite que otro software consulte esas cosas.
Simon Morgan
8

Primero pruebe la solución más popular proporcionada por Ravindra Bagale .

Si su conexión de localhost a la base de datos aún falla con un error similar al siguiente:

No se puede conectar a la base de datos de SQL Server. Error: la conexión TCP / IP al host [dirección IP], puerto 1433 ha fallado. Error: "Conexión rechazada: conectar. Verifique las propiedades de la conexión. Asegúrese de que se esté ejecutando una instancia de SQL Server en el host y acepte conexiones TCP / IP en el puerto. Asegúrese de que las conexiones TCP al puerto no estén bloqueadas por un firewall . "

  1. Abra el Administrador de configuración de SQL Server.
  2. Expanda Configuración de red de SQL Server para la instancia de servidor en cuestión.
  3. Haga doble clic en "TCP / IP".
  4. En la sección "Protocolo", establezca "Activado" en "Sí".
  5. En la sección "Direcciones IP", configure el puerto TCP en "IP Todas" (que es 1433 por defecto).
  6. En la sección "Direcciones IP", busque las subsecciones con la dirección IP 127.0.0.1 (para IPv4) y :: 1 (para IPv6) y configure "Habilitado" y "Activo" en "Sí" y el puerto TCP en 1433.

    Propiedades de TCP / IP

  7. Vaya a Start > Control Panel > Administrative Tools > Servicesy reinicie el servicio SQL Server ( SQLEXPRESS).

naXa
fuente
Probé las otras soluciones anteriores antes de llegar aquí. ¡Este me lo arregló! Además, descubrí que descargar algo llamado psping me ayudó a probar la conexión. Ejemplo: psping 127.0.0.1:1433
JMI MADISON
7

Primero verifique que el servicio SQL Server esté en ejecución o detenido, si está detenido, simplemente inícielo, para hacerlo ... simplemente siga los pasos a continuación.

1.Inicio -> Ejecutar -> Services.msc

ingrese la descripción de la imagen aquí

  1. Vaya a la pestaña Estándar en el panel de servicios y luego busque SQl Server (SQL2014)

"SQL2014" lo proporciono yo, puede ser otro nombre en su caso

ingrese la descripción de la imagen aquí

eso es todo una vez que inicie el servicio SQL, podrá conectar la base de datos local.

espero que ayude a alguien.

PK-1825
fuente
4

Todos mis servicios se estaban ejecutando como se esperaba y todavía no podía conectarme.

Tuve que actualizar la sección de propiedades de TCP / IP en el Administrador de configuración de SQL Server para mis protocolos de SQL Server Express y establecer el puerto IPALL en 1433 para poder conectarme al servidor como se esperaba.

ingrese la descripción de la imagen aquí

contactmatt
fuente
3

Intente cambiar de la autenticación de Windows al modo mixto

Guru1
fuente
1

Es extraño que tenga un problema similar. Descargué el paquete para SQL 2012 Express con herramientas, pero el motor de base de datos no se instaló.

Descargué el otro del sitio de MS y este instaló el motor de base de datos. Después de reiniciar, los servicios se enumeraron y estaban listos para funcionar.

usuario2832504
fuente
1

Mi situación

  • Nombre de instancia vacío en SQL Server Management Studio> seleccione su motor de base de datos> Botón derecho del mouse> Propiedades (Propiedades del servidor)> Propiedades de conexión de vista de vínculo> Producto> El nombre de instancia está vacío

  • Fuente de datos =. \ SQLEXPRESS no funcionó => usar localhost en web.config (ver más abajo)

Solución : en web.config

xxxxxx = nombre de mi base de datos sin .mdf yyyyyy = nombre de mi base de datos en el explorador de bases de datos VS2012

Puede forzar el uso de TCP en lugar de memoria compartida, ya sea prefijando tcp: al nombre del servidor en la cadena de conexión, o usando localhost.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.110%29.aspx

Marc Van Rumste
fuente
1

Tuve el mismo problema y descubrí que esto sucedía después de instalar una actualización para mi SQL 2012. Lo que lo solucionó fue ingresar a programas y funciones y ejecutar una reparación en él.

Mur
fuente
1

El problema para mí fue que no estaba especificando .\. Solo estaba especificando el nombre de la instancia:

  • no funcionó: SQL2016
  • trabajó: .\SQL2016
Cosmin
fuente
1

Después de seguir los pasos que mencionó @ Ravindra Bagale , pruebe este paso. Server name: localhost\{Instance name you were gave}

ingrese la descripción de la imagen aquí

Mohamed Musthaque
fuente
0

Intente cambiar el Usuario propietario del servicio a Sistema local o use su cuenta de administrador.

En servicios, cambié el Servicio SQL Server (MSSQLSERVER) Iniciar sesión de NT Service \ Sql ... To Local System. Haga clic derecho en el servicio y vaya a la pestaña Iniciar sesión y seleccione el botón de opción Cuenta del sistema local. También puede obligar a otro usuario a ejecutarlo también si le queda mejor.

DavidTheDev
fuente