sql-server-2012 - remote - puerto sql server 2017
Habilitar conexiones remotas para SQL Server Express 2012 (16)
Bueno, me alegro de haberte preguntado . La solución que finalmente descubrí estaba aquí:
¿Cómo configuro SQL Server Express para permitir conexiones remotas de TCP / IP en el puerto 1433?
- Ejecute el Administrador de configuración de SQL Server.
- Vaya a Configuración de red de SQL Server> Protocolos para SQLEXPRESS.
- Asegúrese de que TCP / IP esté habilitado.
Hasta ahora, todo bien, y totalmente esperado. Pero entonces:
- Haga clic derecho en TCP / IP y seleccione Propiedades .
- Verifique que, bajo IP2, la dirección IP esté establecida en la dirección IP de la computadora en la subred local.
- Desplácese hasta IPAll.
- Asegúrese de que TCP Dynamic Ports esté en blanco . (La mía se estableció en un número de puerto de 5 dígitos).
- Asegúrese de que el puerto TCP esté configurado en 1433 . (El mío estaba en blanco.)
(Además, si sigue estos pasos, no es necesario habilitar el Explorador de SQL Server y solo debe permitir el puerto 1433, no el 1434).
Estos cinco pasos adicionales son algo que no recuerdo haber tenido que hacer en una versión anterior de SQL Server, Express o de otro tipo. Parece que han sido necesarios porque estoy usando una instancia con nombre (myservername / SQLEXPRESS) en el servidor en lugar de una instancia predeterminada. Mira aquí:
Acabo de instalar SQL Server Express 2012 en mi servidor doméstico. Estoy tratando de conectarme a él desde Visual Studio 2012 desde mi PC de escritorio y obtengo repetidamente el error conocido:
Se produjo un error relacionado con la red o específico de la instancia al establecer una conexión a 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: Named Pipes Provider, error: 40 - No se pudo abrir una conexión a SQL Server)
Lo que he hecho para tratar de arreglar esto:
- Ejecute el Administrador de configuración de SQL Server en el servidor y habilite el Explorador de SQL Server
- Agregue una excepción de Firewall de Windows en el servidor para TCP, puertos 1433 y 1434 en la subred local.
- Verifique que tengo un inicio de sesión en la instancia de SQL Server para el usuario en el que estoy conectado en el escritorio.
- Verifique que estoy usando la autenticación de Windows en la instancia de SQL Server.
- Reinicie repetidamente SQL Server y todo el servidor dang.
- Saca todo mi cabello.
¿Cómo puedo obtener SQL Server 2012 Express para permitir conexiones remotas?
En mi caso, la base de datos se estaba ejecutando en un puerto no estándar. Verifique que el puerto al que se está conectando sea el mismo que el puerto en el que se ejecuta la base de datos. Si hay más instancias de servidor SQL, marque la correcta.
En mi instalación de SQL Server 2012 Developer Edition, instalada con la configuración predeterminada, solo tenía que cargar el Administrador de configuración de SQL Server -> Configuración de red de SQL Server -> Protocolos para MSSQLSERVER y cambiar TCP / IP de Deshabilitado a Habilitado.
Este artículo me ayudó ...
Cómo habilitar conexiones remotas en SQL Server
Todo en SQL Server estaba configurado, mi problema era que el firewall estaba bloqueando el puerto 1433
La forma correcta de conectarse a SQL Server remoto (sin abrir el puerto UDP 1434 y habilitar el buscador de SQL Server) es usar ip y puerto en lugar de una instancia con nombre .
Usar ip y puerto en lugar de una instancia con nombre también es más seguro, ya que reduce el área de la superficie de ataque.
Tal vez 2 imágenes hablan 2000 palabras ...
Este método utiliza el puerto especificado (esto es lo que la mayoría de la gente quiere, creo).
Este método requiere abrir el puerto UDP 1434 y el navegador SQL Server en ejecución.
Prefiero la forma de "Rosdi Kasim" ya que no requiere una configuración detallada en la IP.
Definitivamente lo olvidaré nuevamente cuando intente subir otro servidor nuevamente.
Keep It Simple Stupid (KISS) simplemente habilite el servicio de Sql Server Browser, luego agregue / SQLEXPRESS detrás de la IP cuando conecte el servidor.
El uso directo de IP sin "/ SQLEXPRESS" fue mi punto de falla, ya que no usa el puerto predeterminado.
Gracias.
Puedes usar esto para resolver este problema:
Vaya a INICIO> EJECUTAR y ejecute CLICONFG.EXE.
El protocolo Named Pipes será el primero en la lista. Déjelo y promueva TCP / IP.
Probar la aplicación a fondo.
Espero que esta ayuda.
También puede configurar
Escucha todo a NO
en el diálogo de protocolo y luego en la dirección IP IP1 (por ejemplo)
conjunto habilitado en Sí,
definir su dirección IP,
establezca TCP dinámico en blanco y
Puerto TCP a 1433 (o lo que sea)
Todo lo que necesita hacer es abrir el puerto correspondiente en el servidor de seguridad del servidor.
Tuve el mismo problema con SQL Server 2014 instalado localmente con nombre de instancia. La conexión con el FQDN/InstanceName
fallaría, mientras que la conexión con solo mi hostname/InstanceName
funcionó. Por ejemplo: la conexión usando mycomputername/sql2014
funcionó, pero el uso de mycomputername.mydomain.org/sql2014
no mycomputername.mydomain.org/sql2014
. El DNS se resolvió correctamente, TCP / IP se habilitó dentro del Administrador de configuración de SQL, se agregaron las reglas del Firewall de Windows (y luego se apagó el firewall para comprobar que no estaba bloqueando nada), pero ninguno de ellos solucionó el problema.
Finalmente, tuve que iniciar el servicio " Explorador de SQL Server " en el servidor SQL y eso solucionó el problema de conectividad.
Nunca me había dado cuenta de que el servicio de SQL Server Browser en realidad ayudaba a SQL Server a hacer conexiones; Tenía la impresión de que simplemente ayudó a rellenar los menús desplegables cuando hizo clic en "buscar más" servidores para conectarse, pero en realidad ayuda a alinear las solicitudes de los clientes con el número de puerto correcto a usar, si el número de puerto no está asignado explícitamente (similar cómo los enlaces de sitios web ayudan a aliviar el mismo problema en un servidor web IIS que aloja varios sitios web).
Este elemento de conexión es lo que me dio la pista sobre el servicio del navegador de SQL Server: https://connect.microsoft.com/SQLServer/feedback/details/589901/unable-to-connect-on-localhost-using-fqdn-machine-name
- cuando usa wstst05 / sqlexpress como nombre de servidor, el código del cliente separa el nombre de la máquina del nombre de la instancia y el wstst05 se compara con el nombre de netbios. No veo ningún problema para que coincidan y la conexión se considera local. Desde allí, recuperamos la información necesaria SIN contactar con el Navegador de SQL y nos conectamos a la instancia de SQL a través de la Memoria compartida sin ningún problema.
- cuando usa wstst05.capatest.local / sqlexpress, el código del cliente falla la comparación del nombre (wstst05.capatest.local) con el nombre de netbios (wstst05) y considera la conexión "remota". Esto es por diseño y definitivamente consideraremos mejorar esto en el futuro. De todos modos, debido a que se considera la conexión remota y el hecho de que es una instancia con nombre, el cliente decide que necesita usar SQLBrowser para la resolución de nombres. Intenta ponerse en contacto con el navegador SQL en wstst05.capatest.local (puerto UDP 1434) y aparentemente esa parte falla. De ahí el error que se obtiene.
La razón del servicio "Explorador de SQL Server" de TechNet (énfasis agregado por mí): https://technet.microsoft.com/en-us/library/ms181087(v=sql.120).aspx
De la sección "Usando el navegador SQL Server":
Si el servicio del navegador de SQL Server no se está ejecutando, aún podrá conectarse a SQL Server si proporciona el número de puerto correcto o la canalización con nombre. Por ejemplo, puede conectarse a la instancia predeterminada de SQL Server con TCP / IP si se está ejecutando en el puerto 1433. Sin embargo, si el servicio del navegador de SQL Server no se está ejecutando, las siguientes conexiones no funcionan :
- Cualquier componente que intente conectarse a una instancia con nombre sin especificar completamente todos los parámetros (como el puerto TCP / IP o la canalización con nombre) .
- Cualquier componente que genere o pase información del servidor / instancia que luego podrían ser utilizados por otros componentes para volver a conectarse.
- Conectarse a una instancia con nombre sin proporcionar el número de puerto o la tubería.
- DAC a una instancia con nombre o la instancia predeterminada si no usa el puerto TCP / IP 1433.
- El servicio de redireccionamiento de OLAP.
- Enumeración de servidores en SQL Server Management Studio, Enterprise Manager o Query Analyzer.
Si está utilizando SQL Server en un escenario cliente-servidor (por ejemplo, cuando su aplicación accede a SQL Server a través de una red), si detiene o deshabilita el servicio de SQL Server Browser, debe asignar un número de puerto específico a cada instancia y escriba el código de su aplicación cliente para usar siempre ese número de puerto. Este enfoque tiene los siguientes problemas :
- Debe actualizar y mantener el código de la aplicación cliente para asegurarse de que se está conectando al puerto adecuado.
- El puerto que elija para cada instancia puede ser utilizado por otro servicio o aplicación en el servidor, haciendo que la instancia de SQL Server no esté disponible.
Y más información del mismo artículo de la sección "Cómo funciona el navegador de SQL Server":
Debido a que solo una instancia de SQL Server puede usar un puerto o canalización , se asignan diferentes números de puerto y nombres de tubería para las instancias con nombre, incluido SQL Server Express. De forma predeterminada, cuando se habilitan, las instancias con nombre y SQL Server Express están configuradas para usar puertos dinámicos, es decir, se asigna un puerto disponible cuando se inicia SQL Server. Si lo desea, puede asignar un puerto específico a una instancia de SQL Server. Al conectarse, los clientes pueden especificar un puerto específico; pero si el puerto se asigna dinámicamente, el número de puerto puede cambiar cada vez que se reinicie SQL Server, por lo que el número de puerto correcto es desconocido para el cliente. ... Cuando los clientes de SQL Server solicitan recursos de SQL Server, la biblioteca de red del cliente envía un mensaje UDP al servidor utilizando el puerto 1434. El navegador del servidor SQL responde con el puerto TCP / IP o el conducto con nombre de la instancia solicitada. La biblioteca de red en la aplicación cliente luego completa la conexión enviando una solicitud al servidor usando el puerto o la tubería con nombre de la instancia deseada
Tuve este problema recientemente. 2015 Ago
Resuelto abriendo el Administrador de configuración de SQL Server
- Configuración de red de SQL Server -> Protocolos para SQLEXPRESS
- Propiedades en TCP / IP -> pestaña Direcciones IP
- Todo permanece predeterminado, solo establezca IPALL: Puerto TCP en 1433
Se puede conectar con SQL Server Manager a la máquina: [dirección del host], 1433
Ejemplo:
Tuve que agregar el puerto a través de Configuration Manager y agregar el número de puerto en mi conexión sql [host] / [nombre de instancia db], 1433
Anote el, (coma) entre nombre de instancia y puerto
Tuve que agregar una regla de puerto de entrada de firewall para abrir el puerto UDP 1434. Este es el único servidor de Sql Server Browser que escucha.
Una cosa más para verificar es que ha escrito la instancia nombrada correctamente.
Este artículo es muy útil para solucionar problemas de conexión: Cómo solucionar problemas de conexión al motor de base de datos de SQL Server
¡Tenía un problema diferente de lo que todas las respuestas hasta ahora han mencionado!
Debería comenzar diciendo que lo tenía en Visual Studio, y no en SQL Server Express, pero la solución debería ser exactamente la misma.
Bueno, Dios, en realidad es muy simple y quizás un poco tonto. Cuando intenté crear una base de datos y Visual Studio sugirió el nombre del servidor SQL, me dio mi nombre de usuario de Windows y, dado que es el nombre del servidor, lo busqué.
En realidad, en realidad era mi nombre de usuario de Windows + /SQLEXPRESS
. Si no has cambiado ninguna configuración, esta es probablemente la tuya también. Si funciona, deja de leer; esta es mi respuesta. Si no funciona quizás el nombre sea diferente.
Si, como yo, solo tuvo este problema en Visual Studio para verificar cuál es el suyo, siga estos pasos:
- Abra el icon SQL Server Management Studio .
- Si no ve su servidor (acoplado a la izquierda de manera predeterminada) presione F8 o vaya a Ver -> Explorador de objetos .
- Haga clic con el botón derecho en el nombre del servidor y elija Propiedades (El último elemento)
- En la parte inferior izquierda puede ver el nombre real de su servidor en " Servidor " (no en Conexión, pero encima de él).
Este es el nombre del servidor y esto es a lo que debe intentar conectarse. ¡No es lo que sugiere Visual Studio!
Una cosa más...
Kyralessa proporciona gran información, pero tengo otra cosa que agregar donde me quedé perplejo incluso después de este artículo.
En Configuración de red de SQL Server> Protocolos para servidor> TCP / IP habilitado. Haga clic derecho en TCP / IP y elija propiedades. Debajo de las direcciones IP, debe configurar Habilitado en Sí para cada tipo de conexión que esté utilizando.