Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Aplicaciones Delphi con MySQL por IP (https://www.clubdelphi.com/foros/showthread.php?t=69220)

jbautista 03-08-2010 00:58:09

Aplicaciones Delphi con MySQL por IP
 
Hola que tal, me quivoque en un inicio y puse el post en la seccion de varios, perdon, bueno les cuento: Donde trabajo hay un sistema PHP que se conecta a una BD (MySQL) que esta en el DF y accesamos al sistema por una direccion mas o menos así:
http://empresa.dynalias.com/loguin.php (Maso o menos la direccion para entrar a la BD por medio de PHPmyAdmin)
Por otra parte, hay otra BD aqui donde trabajo (Puebla) este servidor Linux CentOS y con BD MySQL esta local, así que accedemos por medio de la IP directa

192.168.1.xx

Bueno pues tengo hacer unas aplicaciones de escritorio con Delphi 7 (independiente al sistema PHP que ya existe) mis aplicaciones se tienen que conectar a la BD tanto del DF como de Puebla.

Yo he usado Dephi 7 con conexion a SQLServer en una misma red con los compnentes ADO, y las dudas que tengo ahorita son las siguientes:
  1. ¿Que componentes usar para conectarse a una BD MySQL?
  2. ¿Como acceder a una BD por medio de IP y que está fisicamente en otro lugar fuera de mi red?
  3. Afecta que mis aplicaciones corrarn en Windows XP y que la BD este en un servidor Linux de manera remota?
De antemano gracias!!!

rgstuamigo 03-08-2010 22:25:49

Como bien te ha dicho Neftalí en el otro hilo que no repitas los mismo temas en diferentes hilos; teniendo en cuentas eso voy a tratar de ayudarte:
Cita:

Empezado por jbautista (Mensaje 372369)
Yo he usado Dephi 7 con conexion a SQLServer en una misma red con los compnentes ADO, y las dudas que tengo ahorita son las siguientes:
  1. ¿Que componentes usar para conectarse a una BD MySQL?

Existen varios componentes y diferentes formas de conectarse a MySQL desde delphi, Por ejemplo tambien puedes usar los componenetes ADO, aunque para poder conectarte con éstos componentes necesitarás instalarte en cada maquina Cliente el Driver conector de MySQL, lo cual a mi personalmente no me gusta ;), por eso prefiero usar los componentes Zeos que son Gratuitos y no necesitarás ningun Driver más, a excepcion de alguna Dll que viene en el propio paquete Zeos.;).Te los recomiendo.
Tambien se lo puede hacer usando los componentes DBEpress usando los driver que trae el propio IDE de Delphi, busca informacion al respecto.
Existen tambien componentes de Pagos como por ejemplo los componentes MyDAC, entre otros.;). Cómo puedes ver hay muchas alternativas.;)
Cita:

Empezado por jbautista (Mensaje 372369)
2.- ¿Como acceder a una BD por medio de IP y que está fisicamente en otro lugar fuera de mi red?

Pues tranquilamente puedes acceder conociendo la IP o el nombre DNS y el puerto donde está escuchando el servidor MySQL que está fuera de tu red.
Se supone que el dominio :http://empresa.dynalias.com/ Le corresponde una IP Fija ó Estática , es decir su IP nunca Cambia, siempre es la misma.;). Es como el servidor del clubDelphi que su IP es la Misma.
Para saber la IP de cualquier sitio o servidor se puede hacer haciedo Un Ping desde la Linea de Comando, mas o menos así: ping www.google.com , y te mostrará la IP de dicha direccion; es tu caso debes poner la direccion de tu servidor.
Cita:

Empezado por jbautista (Mensaje 372369)
3.- Afecta que mis aplicaciones corrarn en Windows XP y que la BD este en un servidor Linux de manera remota?

No afecta en nada ya que a diferencia de MS SQL Server, MySQL es Multiplataforma, es decir , el servidor puede estar corriendo en Linux, Mac,Windows,Solaris,etc, y de igual manera vamos a poder acceder, en éste caso desde Windows, ya que Delphi solo crea aplicaciones para Windows.;); Pero nada me impide que se pueda hacer otra aplicacion, por ejemplo en java que se conecte ala misma Base de datos, desde otro lugar, y otro sistema Operativos.;).
Espero haberte podido ayudar.
Saludos...:)

AzidRain 03-08-2010 23:52:44

Como te recomienda rges, utiliza Zeos, son sencillos, no dan problemas y bastante rápidos.

Respecto a IPs y eso no necesitas nada más que saber la IP de cada servidor o en su defecto el dominio a que correspondan. La IP de la suc de México seguramente es dinámica y seguramente utilizas un servicio como dyndns o no-ip para acceder. Basta con darle esos datos al conector de zeos y te funciona.

jbautista 04-08-2010 01:23:14

Gracias rgstuamigo, Neftali y [AzidRain] antes que nada disculpen lo de repetir el hilo, me equivoque desde un inicio, pense que lo habia puesto en esta seccion y ya me di cuenta hasta la noche.

(Despues de tremendo regaño no me volvera a pasar :S )

Pues entonces regresando al tema y en resumen los componentes Zeos son los mas adecuado, ya habia leido algo acerca de que con los ADO era mas rollo.

Y entonces solo necesito configurarlos e indicarle el servidor por medio de la IP, y si claro tengo la IP directa, que como bien dijeron es estatica en mi server y esta ligada con DynDNS.

Pues voy a bajarlos y probarlos, y espero no tener mayor problemas.

De antemano gracias y cualquier cosa pues ahi los anadre molestando!

Saludos.

jbautista 05-08-2010 19:06:17

Hola rgstuamigo Fijate que ya me baje los componentes Zeos y los instale con la ayuda del turorial "Como_instalar_ZeosLib" del compañero AzidRain. Pero tengo una duda, en el tutorial se remarca el uso de las DLL de mySQL para las maquinas clientes pero el paquete actual de Zeos: ZEOSDBO-6.6.6-stable.zip ya no trae esa carpeta Lib que trae los DLL, solo la Package.
Y al momento de querer conectar el ZConnection me sale el siguinete error:

None of the dynamic libraries can be fount libmysql51.dll, libmysql50.dll, libmysql.dll

Sabras si las DLL las tengo que bajar aparte o hice mal la instalacion del Package????

Saludos!

AzidRain 05-08-2010 20:04:16

El servidor MySQL trae la dll pero la llama únicamente libmysql.dll, según la versión que estés utilizando debes copiar y renombrar dicho archivo a donde lo vayas a ocupar. Busca ese archivo en el servidor donde tienes instalado MySQL para que lo copies a donde vas a desarrollar. Por alguna razón las versiones más nuevas de Zeos ya no traen las dlls.

jbautista 05-08-2010 20:35:56

Lo anterior ya no :p Tuve que bajar una version mas vieja de Zeos: La ZEOSDBO-6.6.1-beta y ya agregue las DLL.

Bueno aqui ahora si ya tengo un par de dudas mas especificas:

Como les comente accedo a mi BD por medio del PHPmyAdmin desde la direccion
192.168.1.xx/phpMX //accesando desde la misma red
ó
miempresa.dynalias.com/phpMX // desde internet
Por otro lado, si pongo en mi navegador solamente la dir: 192.168.1.xx me habre la pagina prinicipal de mi sistema web.

¿Entonces como sé cual es la direccion de mi servidor que debo poner en la propiedad Hostname del ZConnection?
  • 192.168.1.45
  • ó http://192.168.1.45 (esto me saca un error el: '' is not a valid integer value )
  • 192.168.1.xx/phpMX // supongo que es la dir del phpMyadmyn
  • 192.168.1.45/localhost oO???
Las propiedades que estoy agregando al ZConnection son:
  • Catalog: myEmpresaBD
  • Database: myEmpresaBD
  • Hostanme: 192.168.1.45
  • Password: **** (el mismo que me pide para acceder al srevidor con phpMyAdmin)
  • Protocol: mysql-5 (Aunque no se si es el correcto, la version que ocupo es MySQL client version: 5.0.77, ¿que diferencia hay con el protocolo "mysqld-5"?)
  • User: root (al igual que el pass es el mismo que ocupo para el phpMyAdmin)
En el tutorial que encontre no dice nada de agregar el dato del Port que por default viene 0

Lei por ahi que MySQL ocupa el puerto 3306 ó 3060.
Pero en mi caso cuando ligamos la direccion IP del server al DNS de Dynalias abriamos el puerto 80 de la maquina server en el home del router.

Entonces estoy confundido cual es el correcto?

Aqui en mi oficina fisicamente tengo las dos maquinas en las que estoy trabajando:
  • El servidor Linux CentOS con la Direccion 192.168.4.xx ligado al DNS miempresa.dynalias.com y que contiene el phpMyAdmin y el sistemas PHP que ocupa la empresa.
  • Y la maquina con windows XP, donde tengo Delphi 7 y quiero conectarme a la BD del servidor por medio de 192.168.1.xx
Muchas gracias ojala pudieran orientarme para ubicar que es lo que me falta! :S

jbautista 05-08-2010 20:38:32

Cita:

Empezado por AzidRain (Mensaje 372743)
El servidor MySQL trae la dll pero la llama únicamente libmysql.dll, según la versión que estés utilizando debes copiar y renombrar dicho archivo a donde lo vayas a ocupar. Busca ese archivo en el servidor donde tienes instalado MySQL para que lo copies a donde vas a desarrollar. Por alguna razón las versiones más nuevas de Zeos ya no traen las dlls.

Si pero aqui el server es una maquina distinta con diferente SO donde ya me dejaron instalado la BD y solo me dieron las direcciones para entrar al PHPmyAdmin


Y la maquina donde estoy desarrollando es una con win XP asi que aqui no esta dicha libreria instalada, pero pues ya me consegui las DLL solo tengo las dudas de arriba :S

Gracias!!!!

jbautista 05-08-2010 20:53:54

Por cierto

Con las propiedades:
  • Catalog: myEmpresaBD
  • Database: myEmpresaBD
  • Hostanme: 192.168.1.45
  • Password: **** (el mismo que me pide para acceder al srevidor con phpMyAdmin)
  • Protocol: mysql-5
  • User: root (al igual que el pass es el mismo que ocupo para el phpMyAdmin)
Y la propiedad Port: 3306 se saca el error:

SQL Error: Host '192.168.1.90' is not allowed to connect to this MySQL server. (no entiendo si le puse exactamente el numero 45 al final y no 90)

Y con Port: 80 se queda trabado y no responde.



AzidRain 05-08-2010 21:22:28

No está habilitado el servidor para atender conexiones que no estén dentro de su misma red. Por eso el mensaje.

rgstuamigo 05-08-2010 21:36:38

Tienes que entender que los servidores de Bases de datos que trabajan con protocolo TCP/IP lo hacen usando Socket , es decir ,para poder comunicarse con él, es necesario tres cosas:La Direccion IP o Nombre DNS, el protocolo que se va utilizar( en esté caso se está usando TCP) y el puerto atraves del cual se comunicará.
En tu caso deberás averiguar en que puerto está trabajando tu servidor MYSQL.;), ten por seguro que no es el 80 :rolleyes: ya que el puerto 80 por defecto lo utiliza el protocolo HTTP.;),no debes confundir.
Como tú lo has mencionado anteriormente MySQL por defecto utiliza el puerto 3306 pero eso no significa que el Administrador del servidor no lo haya cambiado a otro puerto,; todo sabemos que MySQL es totalmente configurable.;), de ahí es importante que conoscas la configuracion de tu servidor MySQL, en éste caso el puerto y la IP.;).


AzidRain 05-08-2010 21:48:07

La dirección de tu servidor es la que mencionas: "miempresa.dynalias.com", ese dato es el que le tienes que poner al conector que vayas a ocupar. Una anotación, no es necesariamente "a fuerzas" utilizar phpmyadmin para administrar una bd mysql, hay otras herramientas pero en todos los casos lo mínimo que vas a necesitar es la dirección.

Ahora bien, por default el servidor MySQL no permite conexiones externas a la red donde esté instalado el servidor, por lo que si lo trtas de accesar en esa sucursal u oficina verás que lo puedes hacer sin prblema, pero si lo quieres hacer remotamente ya no podrás. En este caso dado que quien administra el servidor no eres tú, tienes que solicitar que abran el acceso desde el exterior o bien que te asignen un usuario que sí pueda conectarse desde afuera.

Yo tengo trabajando un sservidor Win Server con WAMP vía remota atendiendo 3 sucursales sin ningún problema e igualmente utlizo el esquema de ip dinámica (aunque yo uso dyndns). La diferencia es que en mi caso yo sí tengo acceso a administrar directamente el servidor, que creo que por lo que leemos no es tu caso, de cualquier forma comenta y vemos cmo te ayudamos

jbautista 06-08-2010 19:40:27

Pues si ya me hicieron comprender una par de cosas y creo que por el momento desistire de hacer las aplicaciones con Delphi (aclaro por cuestion de tiempos) mejor hare mis reportes con PHP ya que este codigo esta alojado en el server y las conexiones a la BD las hace directamente como Localhost. Pero Bueno voy a seguir practicando la coneccion remota ademas de tener menos dudas respecto al tema!

les agradesco el tiempo y la continuidad al hilo!!!

He aprendido mucho en estos día y eso ya es mucha ganancia!!!

Buen fin de semana a todos!

darkbits 11-08-2010 18:07:05

yo tube ese mismo problem hace tiempo lo solucione asi
http://localhost/phpMyAdmin/

ve a privilegios si ingresas con root edita el privilegio de localhost por % y listo tu aplicacion delphi o php podra conectarse desde cualquier pc de la red a tu servidor.

kapcomx 18-10-2011 18:32:15

pregunta
 
ke tal compañeros del foro, yo tengo el mismo problema y no he podido echar andar el programa, en red local funciona muy bien pero cuando hago el intento de conectar con la ip del modem, me saca los mismos errores que comentan, me gustaria me pudieran orientar y decirme como puedo checar exactamente que puerto es el que esta utilizando mi servidor de MYsql (es el WAMP) o como lo configuro para que pueda recibir conexiones remotas, estoy seguro que es ahi en ese punto donde me esta fallando.

Espero me puedan apoyar con esta duda.

Saludos a todos...

kapcomx 22-10-2011 21:13:17

lo he logrado
 
Pues si, segui el consejo de un compañero del club y cheque la conexion en una red externa y listo...


La franja horaria es GMT +2. Ahora son las 08:39:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi