Conexión remota de vfp a mysql (error 10060)

2,583 views
Skip to first unread message

Rafael Morales

unread,
Jan 8, 2013, 11:56:09 PM1/8/13
to publice...@googlegroups.com
Saludos a todos. Es la primera vez que utilizo MySQL. 
Siguiendo este tutorial: http://www.portalfox.com/index.php?name=News&file=article&sid=2157&mode=nested&order=0&thold=0 
he podido conectarme a mysql desde Fox Pro 9.0 sp2 en forma local con el siguiente codigo:

release lcStringCnxLocal
public lcStringCnxLocal
lcStringCnxLocal = "DRIVER={MySQL ODBC 3.51 Driver};" + ;
                   "SERVER=localhost;" + ;
                   "UID=root;" + ;
                   "PWD=123456789;" + ;
                   "DATABASE=test;" + ;
                   "OPTIONS=131329;"
SQLSETPROP(0,"DispLogin" , 3 )
lnHandle = SQLSTRINGCONNECT(lcStringCnxLocal)
IF lnHandle > 0
 cmd = SQLEXEC(lnHandle,"select * from empleados","cur_roomtype")
 IF cmd > 0
  BROWSE
 ELSE
  AERROR(laErr)
  MESSAGEBOX("No se pudo conectar a mySQL. Error: " + CHR(13) + laErr[2])
 ENDIF
 USE IN cur_roomtype
 SQLDISCONNECT(lnHandle)
ELSE
 AERROR(laErr)
  MESSAGEBOX("No se pudo conectar a mySQL. Error: " + CHR(13) + laErr[2])
ENDIF

pero cuando intento conectarme remotamente, me sale el error 10060 y no se conecta. Qué puede estar pasando, 
para conectarme remotamente estoy utilizando las mismas lineas de código anteriormente mecionadas, pero con el siguiente cambio:

lcStringCnxLocal = "DRIVER={MySQL ODBC 3.51 Driver};" + ;
                    "SERVER=192.170.0.100;" + ;
                    "PORT=3306;" + ;
                    "UID=booking;" + ;
                    "PWD=booking;" + ;
                    "DATABASE=booking;" + ; 
                                               "OPTIONS=131329;" 

  • Estoy utilizando mysql 5.2
  • Tengo Windows 7 profesional
  • Utilizo Visual Fox Pro 9.0 sp2
Ya he abierto el puerto 3306 en windows 7 siguiento este tutorial : http://www.taringa.net/posts/info/2200816/Abrir-Puertos-en-Windows-7-_seven_.html

Espero que alguien pueda ayudarme, gracias.


--
Rafael Morales

Irwin Rodriguez

unread,
Jan 9, 2013, 8:29:11 AM1/9/13
to publice...@googlegroups.com

Saludos Rafael,

Pueden estar pasando varias cosas y necesitas descartarlas, por ejemplo.

Las maquinas estan en una red LAN o WAN? Si estas conectandote desde internet tienes que agregar la ip publica de la maquina servidor en vez de la local.

La maquina server esta conectada a un enrutador? De ser asi debes de habilitar el puerto.

El Firewall tiene el puerto 3306 agregado como excepción?

Tienes instalado el ODBC 3.51 de mysql?

El Windows es 64 o 32 bits?

Descarta todo eso y me avisas.

Ing. Irwin Rodriguez
Consultor Informático
0412-521.06.79

--
 
 

Guillermo MDQ

unread,
Jan 9, 2013, 9:16:21 AM1/9/13
to publice...@googlegroups.com
Rafa, tienes habilitado el MySQL para que acepte conexiones remotas donde lo tienes instalado ?
De no ser asi tienes que habilitarlo con la configuracion del MySQL, en la parte de remota, si mal no recuerdo creo que en la parte donde dice HOSTS habia que `poner el simbolo % para que las acepte.
Esto te lo puede confirmar mejor alguien que use el MySQL mas asiduamente que yo.

Tambien prueba si te puedes conectar desde un programa administrador como Navicat o Heidi para descartar que el problema lo tienes en el VFP.

Saludos
Guillermo

Luis Salazar

unread,
Jan 9, 2013, 12:57:04 PM1/9/13
to publice...@googlegroups.com
Yo utilizo  MySQL ODBC 5.1 Driver  sin problemas para la version
5. de Mysql   ...  Prueba a ver 
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++





--
 
 

Rafael Morales

unread,
Jan 9, 2013, 1:04:23 PM1/9/13
to publice...@googlegroups.com
Gracias Irwin y Guillermo por responder. 

IRWIN: 
  • Intento conectarme por internet a una maquina donde tengo instalado el mysql.
  • la maquina que tiene instalado el mysql, tiene el windows 7 profesional 64 bits
  • intenté utilizando la IP obtenida con ipconfig y también probé usando la IP con la que me conecto a internet, esta ultima la obtuve ingresando a la siguiente pagina web : www.localzarip.com
  • la máquina que tiene instalado el mysql, está conectada a un router, la maquina tiene IP dinámica esta lo asigna el enrutador.
  • He habilitado el puerto 3306 pero en el sistema operativo. panel de control > firewall de windows > configuracion avanzada > Reglas de entrada > nueva regla > puerto > tcp / puertos locales específicos. ¿Debería hacerlo en el router?
  • Tengo  instalado el Drivers ODBC 3.51 de mysql. Antes tenia el Drivers ODBC 5.2 pero no lograba conexión luego cambié a ODBC 3.51 y logré conexión pero solo localmente, remotamente no puedo, me da el error 10060. Adjunto una captura de pantalla del error para que veas.
GUILLERMO:

  • Cuando estaba instalando el mysql 5.2, en la ultima parte de la configuración me dio la opción: Enable root access from remote machines. yo acepté esta opción marcando la casilla de verificación correspondiente. ¿A eso te refieres o hay que hacerlo en algún otro lugar? .
  • ese simbolo % leí en algun lado que era necesario pero no entiendo donde ni como debo hacerlo.
Gracias otra vez por responder. saludos.




--
Rafael Morales
error 10060.jpg

Rafael Morales

unread,
Jan 9, 2013, 1:06:53 PM1/9/13
to publice...@googlegroups.com
Gracias Luis.

Estoy utilizando MySQL ODBC 5.1 Driver y anda perfecta pero solo puedo conectarme localmente, el problema surge cuando intento una conexion remota. No tengo idea de por qué no me permite hacerlo, ya intenté de todo y no puedo lograrlo. Saludos


--
Rafael Morales

Armando Rodríguez Bermúdez

unread,
Jan 9, 2013, 1:14:15 PM1/9/13
to publice...@googlegroups.com

IPCONFIG, te da la ip de tu equipo dentro de tu LAN. No es una IP que pueda ser vista en internet. La IP con la que te conectas a internet, es la IP que se le asigna al modem router de tu servicio de Internet. Intenta configurar este, para que asignes algún equipo como servidor de MySql. Otra alternativa es el uso de Hamachi.

 

Saludos

Armando

--
 
 

Allan Raúl Acuña

unread,
Jan 9, 2013, 1:16:09 PM1/9/13
to publice...@googlegroups.com
El servidor remoto permite conexiones remotas. Si es un Hosting debe permitir conexiones via ODBC.

Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica

 



Date: Wed, 9 Jan 2013 15:06:53 -0300
Subject: Re: [vfp] Conexión remota de vfp a mysql (error 10060)
From: rafam...@gmail.com
To: publice...@googlegroups.com

--
 
 

Armando Rodríguez Bermúdez

unread,
Jan 9, 2013, 1:19:25 PM1/9/13
to publice...@googlegroups.com

Algunos hostings no permiten conexiones remotas.

--
 
 

Irwin Rodriguez

unread,
Jan 9, 2013, 2:37:05 PM1/9/13
to publice...@googlegroups.com

Ok efectivamente el enrutador te esta bloqueando el puerto 3306, necesitas entrar en el panel de control del router y habilitar el Puerto por medio de la opción forwarding o virtual port. 

Intenta y avisas. 

Ing. Irwin Rodriguez
Consultor Informático
0412-521.06.79





--
Rafael Morales

--
 
 

Jhonny Zambrana

unread,
Jan 9, 2013, 6:17:07 PM1/9/13
to publice...@googlegroups.com
Me parece que es por el tema de lospermisos en el MySql, cuando das los privilegios, le dices con % creo que puede conedctarse desde cualquier IP o si no lo restringe espero te sea util.

Rafael Morales

unread,
Jan 10, 2013, 9:07:15 AM1/10/13
to publice...@googlegroups.com
Hice algunas pruebas siguiendo los consejos recibidos, pero no pasa nada sigue sin conexión, lo que hice fue lo siguiente:

  • Ingresé al router y abrí el puerto 3306 en la opción Forwarding > Port Triggering > add new  (adjunto una captura de pantalla con la configuracion realizada). El router que tengo es TP-Link TL-MR 3420.

  • Intenté dar privilegios de acceso remoto al usuario root y tambien creé otro usuario newusu y le di todos los privilegios incluyendo acceso remoto. en ambos casos hice el siguiente procedimiento:

Primero, desde la línea de comandos de mysql, le di permisos al usuario root (y al usuario newusu).

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
> IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit

Después edité el archivo My.ini    que se encuentra en C:\Program Files (x86)\MySQL\MySQL Server 5.5\    le agregué la siguiente linea:

bind-address = 192.168.x.x  (probé con la ip local obtenida con ipconfig y también probé con la ip publica con la que accedo a internet)

Todavía no logro conectarme Remotamente, También intente poniéndole una IP fija a la pc donde tengo instalado el mysql.

Las dos pc que estoy utilizando para las pruebas tienen instalados el mysql y acceden a internet a traves del mismo router.


Qué estaré haciendo mal?. Gracias a todos por responder.




--
Rafael Morales
option.png

Rafael Morales

unread,
Jan 10, 2013, 11:28:38 AM1/10/13
to publice...@googlegroups.com
Solucionado el problema!!!, Gracias a todos por las sugerencias. Ahora ya puedo conectarme de las dos formas local y remota. Lo que hice fue formatear el Disco e instalar de nuevo el sistema operativo, lo hice porque había instalado varias veces el mysql y se hizo un lío con las bases de datos y usuarios que había creado. 
Luego de Formatear el disco instalé el mysql y finalmente creé un usuario y le di todos los privilegios, para ello utilicé la siguiente linea de codigo: 

mysql> GRANT ALL PRIVILEGES ON *.* TO 'rafa'@'%'
    ->     IDENTIFIED BY '123456789' WITH GRANT OPTION;

le puse el signo % como dijo Jhonny y listo se solucionó todo.

Gracias a todos. Saludos.

--
Rafael Morales

Douglas Sánchez

unread,
Jan 10, 2013, 11:31:09 AM1/10/13
to publice...@googlegroups.com
Excelente para en otra, el usuario tiene que tener los privilegios remoto sobre la base de datos especifica.

Saludes


--
 
 



--
Ing. Douglas Sánchez Guillén
      Consultor Informatico
Claro: 505 88495476

Rafael Morales

unread,
Jan 10, 2013, 11:33:41 AM1/10/13
to publice...@googlegroups.com
Es verdad, lo tendré en cuenta. Gracias.


--
Rafael Morales
Reply all
Reply to author
Forward
0 new messages