none
Apuntar string de conexión a sql server ubicada en una máquina virtual. RRS feed

  • Pregunta

  • Buenos días amigos del foro.

    Estoy intentando conectarme a una base de datos sql server 2012 desde visual basic 2013. Y cuando yo tengo la base de datos en mi propio pc conecta muy bien, pero lo que yo quiero que la sql server este compartida en red y la misma está metida en una máquina virtual con Windows 7. Lo que no logro hacer es en el string de conexión apuntar a donde está la base de datos sql.

    String de conexión cuando la base de datos está en mi propio pc (funciona):

    Private Conexion As New SqlClient.SqlConnection("Data Source=.;Initial Catalog=BDConsultorioClinico;Integrated Security=True")

    String de conexión cuando la base de datos está en la máquina virtual (NO me funciona):

    Private Conexion As New SqlClient.SqlConnection("server=192.168.1.250\W7_32_SP1-PC;database=BDConsultorioClinico;Integrated Security=false")

    Lo que trate de hacer sin éxito es asignarle ip fija a la placa de red virtual que se crea para la máquina virtual.

    Espero haber sido claro con mi consulta y desde ya muchas gracias por la ayuda que puedan llegar a brindarme.

    Saludos!


    Joaquín Bresan

    jueves, 15 de octubre de 2015 12:16

Respuestas

  • Hola.

    Revisa en la máquina virtual si el Puerto de la instancia está habilitado en el Firewall de Windows 7, que es probablemente lo que te puede estar sucediendo.

    Este post en mi blog puede ayudarte con la identificación del Puerto: SQL Server 2012 edición Express y su puerto TCP/IP. Luego de que tengas identificado el Puerto, ve al Firewall de Windows 7 y lo habilitas.

    Saludos,


    Guillermo Taylor F.
    MVP SQL Server & IT Pro
    Mi Blog

    jueves, 15 de octubre de 2015 12:44
  • Así tenga DHCP igual tiene una IP, la cual la veía con ipconfig en CMD.

    Con respecto a tus pruebas, no se si te entendí bien, pero me indicas que, estando en tu maquina virtual con tu usuario de tu maquina virtual no puedes iniciar sql? (o sea nada remoto), o a que te refieres.

    Mmmmmm tu caso esta raro che.


    Roy Sillerico

    jueves, 15 de octubre de 2015 22:06
  • Buenas tardes Joaquin,

    Cuéntame, que usas para virtualizar? Virtual Box? Hyper-V? VmWare?

    Como tienes configurada tu red en la maquina virtual? NAT?, red NAT?,  Adaptador puente?, Red interna? anfitrión?

    Recuerda que si tu quieres tener tu maquina virtual disponible en la red, debes usar Adaptador puente... 

    • Marcado como respuesta Joaquin Bresaan lunes, 19 de octubre de 2015 15:20
    viernes, 16 de octubre de 2015 21:31

Todas las respuestas

  • La primera vez que trabaje con maquinas virtuales sufrí con lo mismo. Tienes que tomar en cuenta varios aspectos:

    • Primera proba si desde tu maquina puedes hacer ping a la virtual y viceversa, si es que no debes configurar bien la red de tu maquina virtual y también el firewall de cada maquina.
    • El SQL al que desea conectarte acepta conexión remota? verifica que si te la acepte, estoy seguro que es uno de esos caso.

    Antes de pasar a hacer tu conexión desde C#, primero intenta conectarte remotamente desde el sql de tu máquina al sql de la máquina virtual. Cuando ya logres conectarte directamente no tendrías porque tener problemas para hacerlo desde C#.


    jueves, 15 de octubre de 2015 12:41
  • Hola.

    Revisa en la máquina virtual si el Puerto de la instancia está habilitado en el Firewall de Windows 7, que es probablemente lo que te puede estar sucediendo.

    Este post en mi blog puede ayudarte con la identificación del Puerto: SQL Server 2012 edición Express y su puerto TCP/IP. Luego de que tengas identificado el Puerto, ve al Firewall de Windows 7 y lo habilitas.

    Saludos,


    Guillermo Taylor F.
    MVP SQL Server & IT Pro
    Mi Blog

    jueves, 15 de octubre de 2015 12:44
  • Otra cosa que vi es que tu modo de autenticación es (creo) con el nombre de la máquina, porque mejor no intentas hacerlo con la autenticación de SQL. Ejemplo:

    SqlConnection conBDI = new SqlConnection("Server=**.**.**.**; Database=base de datos; user id = usuario; password = contraseña");


    Roy Sillerico

    jueves, 15 de octubre de 2015 12:45
  • Muchas gracias por sus prontas respuestas amigos ( Roy Sillerico Segurondo y guillermotaylor)

    Cuando le hado ping desde la máquina virtual, como desde mi pc, el ping me responde bien.

    Tengo habilitado el puerto 1433 en el firewall para conexiones entrantes y salientes. Tanto en la máquina virtual como en mi pc.

    Tengo instalada la sql server 2012 tanto en la máquina virtual como en mi pc. En ambas sql servers esta está configurada para, permitir conexiones remotas con este servidor.

    Esta es la configuración de la placa de red de mi pc(tengo Windows 10 Pro x64bits) la cual es la pc anfitriona:

    IP Addres: 192.168.1.240

    Netmask: 255.255.255.0

    Gateway IP: 192.168.1.1

    Primary DNS IP: 200.45.191.35

    Secondary DNS IP: 200.45.48.233

    Esta es la configuración de la placa de red de mi la máquina virtual (tiene Windows 7 Ultimate x32 bit) la cual es la máquina virtual o invitada:

    IP Addres: 192.168.1.250

    Netmask: 255.255.255.0

    Gateway IP: 192.168.1.1

    Primary DNS IP: 200.45.191.35

    Secondary DNS IP: 200.45.48.233

    Espero que me puedan ayudar amigos, y desde ya muchas gracias.


    Joaquín Bresan

    jueves, 15 de octubre de 2015 20:52
  • Pero puedes conectarte remota desde el SQL server management studio desde tu maquina a la virtual? no S.O., conexión remota del sql management.

    Roy Sillerico

    jueves, 15 de octubre de 2015 21:06
  • No me lo permite, me salta un error. Aca te lo adjunto

    Joaquín Bresan

    jueves, 15 de octubre de 2015 21:25
  • Haber simplemente bájalo tu firewall y volve a intentar, si funciona con eso es que tu firewall esta mal conectado.

    Bueno por lo menos ya sabes por donde va tu problema.


    Roy Sillerico

    jueves, 15 de octubre de 2015 21:27
  • Desactive le firewall y en mi pc y en la máquina virtual pero no funciono. ¿Tú dices que puede que sea un problema de configuración en sql server? Como configuraste la ip que debe de tener la máquina virtual cuando lo hiciste tú.


    Joaquín Bresan

    jueves, 15 de octubre de 2015 21:38
  • Ahora si me quede sin opciones, mmmmm en lo concerniente a la ip lo deje con DHCP, pero si logras hacer ping entre ambas no es la IP.

    Cuando intentas conectarte lo haces con autentificación de Windows o autenficacion de SQL, si es que lo estas haciendo con Windows, podrías intentar autenticarte con sql (usuario de la maquina destino) para descartar que no es permisos de usuario o algo así.


    Roy Sillerico

    jueves, 15 de octubre de 2015 21:45
  • ¿Y cómo hacías referencia a el servidor ubicado en la máquina virtual sino le asignabas ip fija?

    Con lo que respecta a los usuarios, cree usuario en el servidor de la máquina virtual y probé conectarme sin éxito. Y también intente conectarme con el nombre de usuario por defecto que es sa y la contraseña que elegi pero no funciono.


    Joaquín Bresan

    jueves, 15 de octubre de 2015 21:59
  • Así tenga DHCP igual tiene una IP, la cual la veía con ipconfig en CMD.

    Con respecto a tus pruebas, no se si te entendí bien, pero me indicas que, estando en tu maquina virtual con tu usuario de tu maquina virtual no puedes iniciar sql? (o sea nada remoto), o a que te refieres.

    Mmmmmm tu caso esta raro che.


    Roy Sillerico

    jueves, 15 de octubre de 2015 22:06
  • Lo que yo quería decir es que en el servidor de la máquina virtual cree un usuario. Después desde el servidor de mi pc intente conectarme remotamente (con el servidor de la máquina virtual y no me funciono).


    Joaquín Bresan

    jueves, 15 de octubre de 2015 22:29
  • Hola.

    Solo para aclarar:

    ¿En tu máquina virtual SQL Server 2012 está instalado con la instancia por defecto o con una instancia nombrada?

    Es que hay una parte en tu pregunta inicial en donde indicas que parte de tu string de conexión es "server=192.168.1.250\W7_32_SP1-PC". Si es así, entonces tienes una instancia nombrada. Prueba con el SSMS a conectarte a tu instancia nombrada a ver si lo logras... De pronto eso es lo que sucede porque si el Firewall está abajo, ya no es un tema de Puerto.

    De todas maneras, recuerda que cuando se usa una instancia nombrada, SQL Server puede asignar un Puerto diferente al 1433.

    Saludos,


    Guillermo Taylor F.
    MVP SQL Server & IT Pro
    Mi Blog

    viernes, 16 de octubre de 2015 0:09
  • Hola amigos del foro, desde ya muchas gracias por la ayuda y el interés que pusieron en ayudarme.

    Les comento que hoy seguí probando realizar las conexiones. Y lo que logre es conectarme a la sql server de mi pc desde la sql server de la máquina virtual con éxito. Pero de igual manera sigo sin poder conectarme de forma viceversa o sea conectarme a la sql server de la máquina virtual desde la sql server de mi pc.

    Sigo pensando que es un problema ip esta es la configuración que tengo actualmente.

    Esta es la configuración de la placa de red de mi pc(tengo Windows 10 Pro x64bits) la cual es la pc anfitriona:

    IP Addres: 192.168.1.240

    Netmask: 255.255.255.0

    Gateway IP: 192.168.1.1

    Primary DNS IP: 200.45.191.35

    Secondary DNS IP: 200.45.48.233

    Esta es la configuración de la placa de red de mi la máquina virtual (tiene Windows 7 Ultimate x32 bit) la cual es la máquina virtual o invitada:

    IP Addres: 10.0.2.15

    Netmask: 255.255.255.0

    Gateway IP: 10.0.2.2

    Primary DNS IP: 200.45.191.35

    Secondary DNS IP: 200.45.48.233

     

    Les recuerdo que tanto mi pc como la máquina virtual tiene instalada la sql server 2012.


    Joaquín Bresan

    viernes, 16 de octubre de 2015 19:39
  • Mmmmmm la verdad esta bastante raro, entonces tienes algo cerrado en tu maquina virtual, pero si logras hacer ping a tu virtual (de pc a virtual y de virtual a pc) y si en ambos lados el firewall esta abajo, mmmmm no se que podría ser, tal vez una mala configuración en tu sql de la virtual. Esperemos que alguien con mas conocimiento te muestre el camino (así yo también aprendo) :).

    Roy Sillerico

    viernes, 16 de octubre de 2015 19:46
  • Bueno por lo menos hasta donde yo se con esas tres cosas basta:

    • ping entre ambas maquinas, de una a la otra y de la otra a la una
    • firewall abajo.
    • configurar ambos sql para que acepten conexión remota.

    Roy Sillerico

    viernes, 16 de octubre de 2015 19:49
  • <o:p> </o:p>

    Si es raro, de igual manera estoy seguro que si la sql server(que está en la máquina virtual) estuviera en una pc física de mi red local con la configuración que tiene funcionaría bien. Lamentablemente no tengo otro pc con la capacidad suficiente como para probarla.<o:p></o:p>

    Lo que si intente es hacer ping desde una netbook que tengo y solo me respondía al pc físico, cuando le hacía ping a la máquina virtual no me respondía.<o:p></o:p>

    Me parece que sql server debe interpretar que la máquina virtual no está en la misma red, porque cuando yo me fijo la ip (desde cmd\ipconfig) desde dentro de la máquina virtual le asigna la ip 10.0.2.15. En cambio, desde mi pc hago el mismo procedimiento y me asigna una ip 192.168.1.x(de 2 a 255). Actualmente yo le asigne una ip fija a mi pc de 192.168.1.240 en la placa de red.<o:p></o:p>

    También probé agregar a la máquina virtual a mi red local, pero desde la demás pc no me figura.<o:p></o:p>


    Joaquín Bresan

    viernes, 16 de octubre de 2015 20:59
  • En realidad de redes no tengo mas que conocimientos muy básicos, pero se me viene una idea a la cabeza para intentar probar si es la red (haber si funciona). cambia tu configuración a DHCP, una vez que ya tengan asignadas una IP, con ipconfig te fijas con que ip esta el equipo, y a esa ip intentas conectarte, si se conecta es que en tu configuración de red algo esta mal. Claro que cuando reinicies tus equipos tendrán otras ip, pero como te digo solo es una idea que se me vino para verificar que no es la red.

    Roy Sillerico

    viernes, 16 de octubre de 2015 21:08
  • Buenas tardes Joaquin,

    Cuéntame, que usas para virtualizar? Virtual Box? Hyper-V? VmWare?

    Como tienes configurada tu red en la maquina virtual? NAT?, red NAT?,  Adaptador puente?, Red interna? anfitrión?

    Recuerda que si tu quieres tener tu maquina virtual disponible en la red, debes usar Adaptador puente... 

    • Marcado como respuesta Joaquin Bresaan lunes, 19 de octubre de 2015 15:20
    viernes, 16 de octubre de 2015 21:31
  • SI aun tienes problemas y tiempo mañana estare en la pc un rato en la mañana hasta la hora de comida buscame en skype "enriarg" y con todo gusto te apoyo.
    sábado, 17 de octubre de 2015 4:32
  • Muy bueno días amigos del foro, les comento que después de un par de días probando pude solucionar el problema gracias al aporte del amigo Shanir Palencia. El problema era de configuración dado que tuve que configurar el adaptador de red de la máquina virtual (una virtual box) en modo puente para que los demás integrantes de mi red local pudieran tener acceso a la misma. Ahí comparto una captura de la configuración.

    El string de conexión que apunta a la sql server de la máquina virtual quedo de la siguiente manera:

    Private Conexion As New SqlClient.SqlConnection("Data Source=192.168.1.250;Initial Catalog=BDConsultorioClinico;Integrated Security=false; user id=userRemoto_3; password=usuarioRemoto")

    En el adaptador de red de la máquina virtual asigne ip fija.

    Bueno amigos del foro estoy más que agradecido por la ayuda y el interés que todos me brindaron.

    Saludos y muchas gracias a todos.


    Joaquín Bresan

    lunes, 19 de octubre de 2015 15:22
  • Excelente que hayas podido solucionarlo, saludos!
    lunes, 19 de octubre de 2015 18:48
  • Usa Nombre de servidor 192.168.1.250,1433

    ya que 1433 es el puerto por Default donde escucha, tambien puedes asignarle otro en la consola de sql manager

    domingo, 26 de agosto de 2018 12:27