Parece que no puedo conectarme a mi base de datos desde un sitio. Me sale este error:
Proveedor de canalizaciones con nombre, error: 40 - No se pudo abrir una conexión a SQL Server
Intenté usar la dirección IP local para conectarme y también una pública. He intentado:
- Sí, el sitio puede comunicarse con el servidor
- Las canalizaciones con nombre / TCP están habilitadas.
- Se permiten conexiones remotas.
- Firewall de Windows está apagado
- Creó una excepción para el puerto 1433 en el Firewall de Windows.
- Habilitado todo en el Administrador de configuración de SQL Server.
¿Qué más puedo hacer aquí?
Respuestas:
Resolver este problema es muy fácil:
Captura de pantalla de los pasos:
fuente
Y la solución más simple: verifique si su barra está de regreso ...
Pasé aproximadamente una hora tratando de descubrir qué le pasa a SERVER / INSTANCENAME cuando todo está configurado correctamente, canalizaciones con nombre, derechos de acceso de usuario ... y de repente me di cuenta, no es una barra oblicua, es una barra invertida (
\
).El horror, la vergüenza ...
fuente
Server=MyServerName\DOLPHIN=Trusted_Connection=True;Database=DolphinPlatform
mientras estaba en desarrollo (C #) me estaba conectando a un servidor MSSQL 2017 instalado localmente, pero cuando fui a implementarlo, el servidor remoto instalado por el proveedor de software se estaba ejecutando como unInstance
. Seguí pensando que era un problema de autenticación porque se estaba ejecutando como un servicio o algo así hasta que encontré esto.Es un proceso de tres pasos realmente después de instalar SQL Server:
Reinicie el servidor SQL Config Manager -> Servicios de SQL Server -> SQL Server (SQLEXPRESS) -> Haga clic derecho -> Reiniciar
Utilice los nombres de instancia y servidor adecuados (¡ambos son necesarios!) Normalmente, esto sería . \ SQLEXPRESS , por ejemplo, vea la captura de pantalla del cuadro de diálogo de conexión QueryExpress.
Ahí tienes.
fuente
Acababa de instalar el desarrollador SQL SERVER 2012. Cuando estaba creando mi primer paquete SSIS, recibí este error de canalización cuando intentaba crear una tarea de conexión de datos en SQL Server 2012 Data Tools en el cuadro Connection Manager. Resolví con la ayuda de la publicación anterior.
Si elige una instancia con nombre y llama a su instancia con nombre SSQDatabase1 y el nombre de su PC es PCX1. Debe ingresar PCX1 \ SSQDatabase1 no solo SSQDatabase1 o recibirá el error de canalización con nombre.
fuente
Un hilo en MSDN Social, Re: Proveedor de canalizaciones con nombre, error: 40 - No se pudo abrir una conexión a SQL Server , tiene una lista bastante decente de posibles problemas relacionados con su error. Es posible que desee ver si alguno de ellos podría ser lo que está experimentando.
fuente
ip.ip.ip.ip/NamedInstance
?Acabo de activar TCP / IP, VIA, canalizaciones con nombre en SQL Server Configuration Manager, mi problema se resolvió remitir este para obtener más información Resolución de canalizaciones con nombre de error 40
fuente
Usar SERVIDOR \\ NOMBRE DE INSTANCIA. El uso de una barra invertida doble en mi proyecto resolvió mi problema.
fuente
@"server\instance"
o"server\\instance"
debería funcionar. Si está en un archivo de configuración, entonces solo desea el servidor de texto sin formato \ instancia.Gracias a Damian ...
Tuberías con nombre TCP / IP ... ambas habilitadas
Web Config .... (para localhost)
fuente
Tenía el mismo problema Pasé como 6 horas cuando tuve que migrar algunos servidores. Intenté todas las sugerencias disponibles sobre este tema y otros.
¡La solución fue tan simple como reiniciar el servidor!
fuente
en mi caso, tenía un servidor independiente, cambié el puerto predeterminado del puerto del servidor sql 1433 en el administrador de configuración a algún número y reinicié el servicio de servicio sql para que surta efecto, pude conectarme al servidor sql a través del estudio de administración si inicio sesión al servidor pero no pude conectarme desde mi máquina local a través del servidor sql, recibí el error:
Se produjo un error relacionado con la red o específico de la instancia al establecer una conexión con SQL Server. El servidor no se encontró o no estaba accesible. Verifique que el nombre de la instancia sea correcto y
que SQL Server está configurado para permitir conexiones remotas. (proveedor: proveedor de canalizaciones con nombre, error: 40 - No se pudo abrir una conexión a SQL Server) (Microsoft SQL Server, error: 5)
Revisé y verifiqué todo lo siguiente
-Tuberías con nombre / TCP está habilitado. -Las conexiones remotas están permitidas. -Windows Firewall está apagado -Creó una excepción para portin Windows Firewall (esto no era necesario en mi caso ya que el servidor está en la misma red de subred). -Habilitado todo en el Administrador de configuración de SQL Server.
luego cambié el número de puerto al valor predeterminado 1433 y reinicié el servicio del servidor sql, y el problema se resolvió y puedo conectar el servidor sql desde mi estudio de administración local.
fuente
Yo tuve el mismo problema. Utilizo el MSSQL Server Management Studio 2017 y resolví este problema siguiendo estos pasos:
y lo arreglé
fuente
Pruebe los siguientes pasos:
Abra la ventana Servicios (abra "cuadro de ejecución" y escriba services.msc).
Buscando servicios SQL (con prefijo SQL).
Inícielos (si no puede comenzar. Vaya al paso 4).
Haga clic derecho en cada servicio -> Propiedades -> Cambiar a la pestaña "Iniciar sesión" -> elija iniciar sesión como "Local ..." -> 0K. Luego inicie los servicios SQL nuevamente.
Prueba Open SQL y conecta la base de datos.
fuente
Lo más probable es que su nombre de base de datos no sea correcto, verá el nombre del servidor en VS como "DESKTOP-0I14BKI" pero si abre SSMS verá DESKTOP-0I14BKI \ SQLBLAHBLAH , simplemente agregue " \ SQLBLAHBLAH " (nombre de instancia ) a su "nombre de servidor" en las propiedades de conexión VS.
Verá :
Arreglar:
fuente
TL; DR; Su instancia de SQL Server está utilizando puertos dinámicos que no funciona. Forzar a SQL Server a usar el puerto estático # 1433.
Detalles completos : en primer lugar, este problema es más probable si tiene una combinación de instancias predeterminadas y con nombre o solo con nombre (que fue mi caso).
Concepto clave : cada instancia de Microsoft SQL Server instalada en una computadora utiliza un puerto diferente para escuchar las solicitudes de conexión entrantes. La instancia predeterminada de SQL Server usa el puerto n. ° 1433. A medida que instale instancias con nombre, comenzarán a usar puertos dinámicos, lo que se decide en el momento del inicio del servicio de Windows correspondiente a la instancia de SQL Server con nombre.
Mi código estaba fallando (con el código de error 40) para conectarse a la única instancia de SQL Server con nombre que tenía en mi VM. Puede probar a continuación las posibles soluciones:
Solución n. ° 1 : el código del cliente que intenta conectarse a la instancia de SQL Server requiere la ayuda del servicio del navegador de SQL Server para determinar el número de puerto en el que su instancia con nombre escucha las conexiones entrantes. Asegúrese de que el servicio del navegador SQL se esté ejecutando en su computadora.
Solución n. ° 2 : Verifique el n. ° de puerto (en color amarillo) que su instancia de SQL Server nombrada está utilizando desde el administrador de configuración de SQL Server como se muestra en la siguiente instantánea:
Use ese número de puerto explícitamente en su cadena de conexión o como se
sqlcmd
muestra a continuación:Solución n. ° 3 : obligue a su instancia con nombre a usar el puerto n. ° 1433, que se usa de manera predeterminada. Recuerde que esto solo funcionará si no tiene ninguna instancia predeterminada de SQL Server en su computadora, ya que la instancia predeterminada de SQL Server la usaría utilizando el puerto # 1433 ya. El mismo número de puerto no puede ser utilizado por dos servicios diferentes de Windows.
Marque el
TCP Dynamic ports
campo en blanco y elTCP Port
campo en 1433.Cambie el número de puerto en su cadena de conexión como se muestra a continuación:
O
Nota : Cada cambio en la configuración de TCP / IP requiere el reinicio del servicio de Windows correspondiente.
Curiosamente, después de resolver el error cuando volví a la configuración del puerto dinámico para reproducir el mismo error, no sucedió. No estoy seguro de por qué.
Lea a continuación los hilos interesantes para saber más sobre los puertos dinámicos de SQL Server:
¿Cómo configurar el puerto del servidor SQL en varias instancias?
¿Cuándo es un puerto dinámico "dinámico"?
¿Cuándo usar un puerto dinámico TCP y cuándo puerto TCP?
Obtuve pistas para la solución de mi problema de este blog.
fuente
En mi caso, abrí SQL Server Management Studio y busqué SQLEXPRESS en mi motor de base de datos. Tenía dos instancias y seleccioné la correcta.
fuente
Si está trabajando con Asp.net core y está usando appsettings.json que escriba el servidor como localhost y luego escriba el nombre de instancia sql para la canalización con nombre habilitada como esta
fuente
Solución muy simple
uso
(local)\InstanceName
eso es todo. Funcionó para mí.fuente
Si intentó reiniciar el servicio MSSQLSERVER y no funcionó, esta podría ser una solución:
Si está utilizando SQLExpress, el nombre de su servidor debe ser el siguiente ComputerName \ SQLExpress. Sin embargo, para SQLDeveloper, no tiene que corregir SQLDeveloper después de su ComputerName.
fuente
Después de seguir todos los pasos mencionados aquí , si aún no se conecta, intente agregar el DNS con la dirección IP en el archivo de hosts en la carpeta, etc. Agregar una dirección IP en lugar del nombre DNS en la cadena de conexión debería ser una solución temporal para verificar si la conexión realmente funciona.
fuente
me aseguré e hice lo anterior también y solo quiero compartir que el DOBLE RETROCESO
oBuilder.DataSource = "SPECIFICPCNAME \ SQLEXPRESS";
El uso de UNA SOLA RETROCESO dio como resultado un error de compilación, es decir: Error 1 Secuencia de escape no reconocida
Espero que esto ayude al próximo tipo: sacrifiqué la cena, la merienda de medianoche y el momento culminante de la NBA para resolver esto (vergüenza)
Gracias a [Tamizh venthan] ^ _ ^
fuente
Habilite TCP / Ip, protocolo canalizado yendo a Administración de computadoras -> SQL y servicios, asegúrese de que el servicio esté activado. Enbale el puerto en el cortafuegos. Intente iniciar sesión a través del símbolo del sistema -> como administrador; Por último, el nombre de usuario debe ser (local) \ SQLEXPRESS. Espero que esto ayude.
fuente
Abra el Administrador de configuración de SQL Server
fuente
Tuve el mismo problema y lo resolví desactivando mi firewall (ESET).
El primer paso para resolver este problema debería ser hacer ping a su propia computadora desde otra computadora. Si tiene el firewall activado, es posible que no pueda hacer ping a usted mismo. Intenté hacer ping a mi propia PC, luego fallé el ping (no obtuve respuesta del servidor)
fuente
He sugerido los pasos a continuación para resolver su problema. ¿Cómo soluciono el error 'Proveedor de canalizaciones con nombre, error 40 - No se pudo abrir una conexión a' SQL Server '
fuente
Intenté agregar una nueva conexión en VS2015. Ninguna de las sugerencias aquí funcionó. Sospechando algún tipo de error en el asistente, especialmente porque SSMS pudo conectarse bien, decidí intentarlo y engañarlo. ¡Funcionó!
En lugar de agregar la conexión, use "Crear nueva base de datos de SQL Server". Ingrese el nombre de su servidor y un nombre aleatorio para la nueva base de datos, por ejemplo, "prueba".
Suponiendo que esto tiene éxito, abra el Explorador de servidores en VS, ubique la conexión en Conexiones de datos, haga clic con el botón derecho y seleccione Modificar conexión.
Cambie "prueba" (del paso 1) al nombre de la base de datos existente a la que desea conectarse. Haga clic en "Probar conexión". ¡Esta vez debería funcionar!
Elimine la base de datos temporal que creó en el paso 1.
fuente
Tengo una solución más, creo. Recientemente había cambiado el nombre de mi computadora, así que, después de no poder conectarme después de probar todos los métodos anteriores. Cambié el nombre del servidor. Nombre del servidor => (busque más) => en el motor de la base de datos, se encontró un nuevo servidor igual que el nuevo nombre de las computadoras. Esto funcionó, y la vida es buena otra vez.
fuente
Luché durante años en este antes de darme cuenta de mi error: había usado comas en lugar de punto y coma en la cadena de conexión
fuente
Tuve este problema, pero ninguna de las sugerencias anteriores lo solucionó.
Estaba viendo este problema cuando implementé mi sitio web en IIS. La solución fue ir a la configuración avanzada del grupo de aplicaciones predeterminado y cambiar la propiedad de identidad de la predeterminada a Administrador.
fuente
Para mí fue un problema de firewall.
Primero debe agregar el puerto (como 1444 y quizás 1434) pero también
y
La segunda vez que recibí este problema es cuando volví al firewall, ¡las rutas no eran correctas y necesitaba actualizar el formulario 12 a 13! Simplemente haciendo clic en Examinar en la pestaña Programas y servicios ayudó a darse cuenta de esto.
Finalmente, intente ejecutar el comando
Para mí, me devolvió la razón del error
fuente
Intenté casi todo en esta página, pero tuve algunos problemas subyacentes que en realidad eran lo que debía resolverse. No pude hacer ciertas cosas como abrir el Administrador de configuración de SQL Server, que terminó siendo archivos corruptos / faltantes del proveedor WMI.
Hay muchas formas tediosas de resolver estos problemas de acuerdo con lo que he leído, pero la herramienta de tweaking.com pudo eliminar y reemplazar / reparar mis archivos de proveedor WMI (Instrumental de administración de Windows).
Solía reparar computadoras y, en general, la herramienta tweaking.com realmente me impresionó, y se sugirió en una de las páginas del foro de errores de WMI que visité.
Después de solucionar este problema, pude conectarme a mi base de datos SQL, tanto local como remotamente.
Espero que esto ayude a alguien.
fuente