Acabo de instalar SQL Server 2012. Todavía no se ha creado una base de datos. Y puedo abrir Management Studio con sa / contraseña. El Binn \ sqlservr.exe se inicia como un servicio y puedo verlo iniciado en la lista de servicios. Sin embargo, no escuchó el puerto 1433, o incluso, no escuchó ningún puerto de forma predeterminada, como verifiqué a continuación:
tasklist|find /I "sql"
Tengo:
sqlservr.exe 5668 Services 0 40,112 K
en el que 5668 creo que es el PID. Y luego para obtener PID = "5668" está escuchando qué puerto:
netstat -ano | find /I "5668"
pero no tengo nada excepto en blanco. Por otro lado, después de buscar publicaciones en este sitio, verifiqué dos veces la configuración de mi servidor SQL: inicio-> Todos los programas -> Microsoft SQL Server 2012 -> Herramientas de configuración -> Administrador de configuración de SQL Server-> SQL Server SQL Native Client 11.0 Configuración -> Protocolos de cliente -> TCP / IP -> Puerto predeterminado 1433. Hay 3 servicios, SQL Server (MyInstanceName), SQL Server Agent (MyInstanceName) y SQL Server Browser. Los dos últimos están detenidos.
Administrador de configuración de SQL Server-> Configuración de red de SQL Server-> Protocolos para MyInstanceName -> TCP / IP está deshabilitado de forma predeterminada, después de habilitarlo y reiniciar el servicio y repetir netstat -ano | comando find / I "newPIDNum" Encontré el
TCP 0.0.0.0:52395 0.0.0.0:0 LISTENING 5668(newPIDNum)
¿Por qué 52395 en lugar de 1433? Y no pude crear el DSN usando el administrador de fuente de datos ODBC de Windows que me devuelve un error: no se encontró el servidor SQL especificado. ¿Alguna ayuda para mí? Gracias.
Respuestas:
Lo que hizo que mi servidor SQL escuchara las
TCP
conexiones en el puerto 1433 fue lo siguiente ...TCP
comunicaciónTCP
entrada de comunicación, elijaProperties
Port
entrada para " IPAll ".Verifique su configuración con
netstat -an
:fuente
Las instancias con nombre escuchan en puertos dinámicos. Es el trabajo del Servicio de navegador del servidor SQL informar a los clientes del puerto real. El navegador SQL escucha en UDP 1434 y responde preguntas de la forma '¿cuál es el puerto de escucha de instancia "foo"? El servicio SQL Server Browser es necesario tanto para TCP como para protocolos de canalizaciones con nombre. Los clientes usan el navegador SQL Server de forma transparente, sin necesidad de una configuración especial. Simplemente especificando un nombre de instancia en la cadena de conexión (o el DSN de ODBC), la biblioteca del cliente sabe que primero tiene que ponerse en contacto con el servicio del navegador SQL Server.
Obviamente, para que el navegador SQL Server haga su trabajo, debe iniciarse. Inícielo y cambie el tipo de inicio a automático.
Como nota al margen, una configuración alternativa que se usa con frecuencia es usar puertos estáticos para la instancia con nombre y especificar el puerto en la cadena de conexión (
tcp:<hostname>:<port>
). Tiene la ventaja de eliminar el navegador SQL Server de la ecuación, pero requiere un mantenimiento cuidadoso de los clientes. Cambiar el puerto de escucha requiere cambios orquestados en todos los clientes, todas las máquinas, todas las ubicaciones, generalmente un gran dolor. Recomiendo tomar la dependencia del navegador SQL Server en su lugar.fuente
Cortafuegos - 3 de ellos
Personas que no están familiarizadas con las versiones más recientes de Windows (no me siento cómodo con ninguna después de XP, e intentaba instalar SQL Server en Windows 10):
Si solo lo hace por el primero que ve (Perfil de dominio), todavía se preguntará por qué puede conectarse al puerto 80 (IIS) pero no al 1433 (SQL Server).
fuente
Todavía no puedo comentar (reputación baja ya que no es muy activa): pero deshabilitar Windows Firewall, como se mencionó anteriormente, es la peor respuesta posible. Correcto sería: Cree reglas de firewall en "entrante" para permitir la comunicación del Puerto 1433 en esas IP locales (o todas) que necesite. Y también recomiendo establecer qué IP remotas pueden conectarse a ese SQL Server.
fuente