¿Cómo hacer que SQL Server que se ejecuta en Virtual PC sea accesible para el sistema operativo host?

StackOverflow https://stackoverflow.com/questions/310407

  •  10-07-2019
  •  | 
  •  

Pregunta

Estoy ejecutando SQL Server 2008 Express en Windows XP en una instancia de VirtualPC dentro de un host de Windows XP. Quiero poder conectarme a bases de datos en la instancia de invitado usando SSMS en el host. Cuando voy a conectarme desde SSMS en el host y busco servidores, veo la instancia de SQL Server en el invitado. Sin embargo, cuando intento conectarme, usando un inicio de sesión de autenticación SQL, aparece el siguiente error de conexión:

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: interfaces de red SQL, error: 28 - El servidor no admite el protocolo solicitado) (Microsoft SQL Server, error: -1)

Tengo:
* Intenté conectarme con Name Pipes y TCP / IP
* se aseguró de que el servicio del navegador SQL esté activo
* se aseguró de que el firewall en el invitado esté abierto
* el servidor está configurado para permitir conexiones remotas (de acuerdo con las propiedades del motor de la base de datos dentro de SSMS en el invitado)

¿Qué me estoy perdiendo?

EDITAR: Me di cuenta de esto. Mi resolución está abajo.

¿Fue útil?

Solución

RESPUESTA AUTEPROBADA

Gracias por las ideas. Después de mucho jugar, conseguí que las cosas funcionaran. Resultó que no había entrado en el Administrador de configuración del servidor SQL y habilitado TCP / IP y canalizaciones con nombre como protocolos de red. Entonces, a pesar de que SSMS dijo que las conexiones remotas estaban habilitadas, no había ningún protocolo para permitirlas aparte de la memoria compartida. Después de hacer esto, reinicié el servicio de SQL Server, pero las cosas todavía no parecían funcionar correctamente. Sin embargo, una vez que reinicié tanto el invitado como el host, todo funcionaba como se esperaba.

Otros consejos

¿Cómo es su configuración de IP? ¿Estás compartiendo la misma dirección IP entre las dos máquinas? Si es así, tal vez cuando sus clientes intenten conectarse a 10.1.1.10, esté golpeando la IP de la máquina que aloja la instancia de VPC, y esa máquina no está ejecutando la instancia de SQL Server. Si es posible, haga que VPC obtenga su propia IP e intente eso.

Principalmente revisa lo que ya has dicho,
apague el cortafuegos invitado para asegurarse de que no sea eso.
Asegúrese de que la red de su máquina virtual esté configurada en puente y no en NAT.
Intente conectarse a la dirección IP del invitado en lugar de su nombre.
Asegúrese de que el servidor SQL permita las conexiones remotas y que tanto el cliente como el servidor estén utilizando tcp / ip (o canalizaciones con nombre, si lo prefiere).
No sé si habilitar conexiones remotas requiere reiniciar el servidor SQL.
Intente usar la autenticación SQL para eliminar un problema de autenticación. ¿Estás ejecutando en un dominio?

Para agregar algunos pasos que no se mencionan explícitamente anteriormente, lo que funcionó en mi experiencia fue configurar la conexión en red de la PC virtual a mi adaptador de red física.

Luego deshabilitó el Firewall de Windows para el Perfil Público.

Espero poder bloquearlo en el puerto 1433.

Además, en el sistema operativo invitado, si SQL Server está instalado solo con autenticación de Windows, luego agrega autenticación de SQL, tenga en cuenta que, de forma predeterminada, 'sa' está deshabilitado para el acceso de inicio de sesión. O bien 'habilitar' Iniciar sesión para 'sa' o (mejor idea) crear Inicios de sesión con los permisos adecuados según sea necesario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top