SQL Server se inició pero no escuchó en ningún puerto

9

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.


fuente
Configuración de red predeterminada de SQL Server (para 2008, no puedo encontrar la versión 2012 pero no creo que sea diferente)
Damien_The_Unbeliever
Gracias. Una muy buena ayuda para mí. ¿Algún comentario más sobre mi embalaje DSN?
Parece que está utilizando una instancia con nombre (solo la instancia predeterminada escucha en 1433, que yo sepa). ¿Incluye el nombre de la instancia cuando intenta crear el DSN?
Damien_The_Unbeliever
Sí, al instalar, ingresé un nombre para Instancia. Al crear DSN, me pidieron que ingresara un nombre DSN (ingresé un nombre arbitrario), un servidor SQL para conectarme (este es un cuadro de selección desplegable y probé dos opciones aquí, ambas fallan, una es (local), otra es <.MyInstanceName>),
Todavía no vi ningún otro lugar para incluir MyInstanceName. Y el siguiente botón me dirige una autenticación, así como una <Configuración del cliente> que puedo configurar el <Alias ​​del servidor>, <Nombre del servidor> y marcar <Determinar puerto dinámicamente>.

Respuestas:

14

Lo que hizo que mi servidor SQL escuchara las TCPconexiones en el puerto 1433 fue lo siguiente ...

  1. Herramientas de configuración / Administrador de configuración de SQL Server
  2. haga clic en el nombre de la instancia en la configuración de red de SQL Server
  3. permitir la TCPcomunicación
  4. Haga clic derecho en la TCPentrada de comunicación, elijaProperties
  5. Haga clic en la pestaña de direcciones IP
  6. Habilite todas las direcciones IP que no sean VMnet e ingrese 1433 en la Portentrada para " IPAll ".
  7. Reinicie SQL Server en la pestaña Servicios de SQL Server
  8. Verifique su configuración con netstat -an:

    C:\>netstat -an | find "1433"
      TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING
      TCP    [::]:1433              [::]:0                 LISTENING
anguila ghEEz
fuente
1
Esta es solo una solución que me funciona. Cualquier otro manual ni siquiera dice sobre el puerto IPAII. Gracias hombre, me
alegraste el
13

¿Por qué 52395 en lugar de 1433?

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.

Hay 3 servicios, SQL Server (MyInstanceName), Agente SQL Server (MyInstanceName) y SQL Server Browser. Los dos últimos están detenidos

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.

Remus Rusanu
fuente
1

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):

  • Su cortafuegos debe activarse en 3 lugares separados (es decir, para 3 perfiles diferentes).

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).

ingrese la descripción de la imagen aquí

Sridhar Sarnobat
fuente
1

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.

JouMxyzptlk
fuente