Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como conectar con dos servidores distintos para pasar datos de una bd a otra

Estas en el tema de Como conectar con dos servidores distintos para pasar datos de una bd a otra en el foro de PHP en Foros del Web. Tengo dos maquinas Virtuales A y B las dos debiasn y están arrancadas cons ervicio web y demas. En cada una de ellas tengo uan ...
  #1 (permalink)  
Antiguo 21/02/2013, 10:42
 
Fecha de Ingreso: septiembre-2012
Ubicación: Sevilla
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 0
Exclamación Como conectar con dos servidores distintos para pasar datos de una bd a otra

Tengo dos maquinas Virtuales A y B las dos debiasn y están arrancadas cons ervicio web y demas. En cada una de ellas tengo uan base de datos.
Desde mi maquina fisica tmb ubuntu estoy tratando de hacer un pequeño script php en el que paso los datos de una de las tablas mysql desde un servidor al otro.

La estructura del script es :

Código PHP:
Ver original
  1. $conexionA = mysql_connect('192.XXX.XXX.XXX','xxx', 'xxx');
  2. if (!$conexionA) {
  3.     echo "Error al intentar conectarse a mysql en A";
  4.     exit();
  5. }
  6. if (!mysql_select_db('dolibarr', $conexionA)) {
  7.     echo "No se pudo conectar correctamente con la base de datos de A";
  8. }
  9. $conexionB = mysql_connect('192.XXX.XXX.XXX','xxx', 'xxx');
  10. if (!$conexionB) {
  11.     echo "Error al intentar conectarse a mysql en B";
  12.     exit();
  13. }
  14. if (!mysql_select_db('dolibarr', $conexionB)) {
  15.     echo "No se pudo conectar correctamente con la base de datos de B";
  16. }
y luego hago la consulta en A guardo el resultado en variables y posteriormente lo inserto en la tabla del Servidor B
---Pues mi prblema es que al arrancar el script me pone 'Error al intentar conectarse a mysql en A' y si comento esta parte me sale lo mismo pero con B. Como podeis ver las conexiones están bien hechas pero sin embargo me da el error por favor alguien que me puede ayudar a solucionarlo. Gracias
  #2 (permalink)  
Antiguo 21/02/2013, 10:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

PHP o es tema del for, y las conexiones son tema de programación.

Paso el post al foro de PHP.

Por otro lado, la sentencia puede estar bien escrita, y aún así los datos estar mal, o bien no tener permisos para hacer las conexiones remotas en el usuario, y varias otras cosas por el estilo.
Verifica permisos del usuario, y captura el error que mysql te devuelve (no veo que lo hagas).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 21/02/2013, 10:49
 
Fecha de Ingreso: septiembre-2012
Ubicación: Sevilla
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

pero weno sabes como solucioonarlo
  #4 (permalink)  
Antiguo 21/02/2013, 10:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

¿Verificaste lo que te dije?

Cita:
pero weno sabes como solucioonarlo
No se soluciona desde SQL, por eso te pasé el post a PHP. Y sin más datos y tus verificaciones, no podemos encarar una solución.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 21/02/2013, 10:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

Si es cuestión de permisos de MySQL, la solución es simple, pero si son limitaciones de otro orden...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 21/02/2013, 10:53
 
Fecha de Ingreso: septiembre-2012
Ubicación: Sevilla
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

si los datos estan bien por eso es l que meparece raro , la cosa es que nose si trabajando desde local puedo acceder a esos dos servidores directamente o tengo que hacer un paso intermedio??
Permisos mysql?? a k te refieres ?? como se pueden cambiar??
  #7 (permalink)  
Antiguo 21/02/2013, 10:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

No me has contestado ninguna de las dos cosas:
- ¿Verificaste los permisos que tienen los usuarios utilizados en cada servidor? ¿Tienen permisos para conexión remota?
- ¿Por qué no capturas el error que MySQL debe estar devolviendo? (ver manual de PHP: mysql_error() y mysql_errno()).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 21/02/2013, 11:02
 
Fecha de Ingreso: septiembre-2012
Ubicación: Sevilla
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

he probado con mysql_errno();
Código PHP:
Ver original
  1. $conexionD = mysql_connect('192.XXX.XXX.XXX','xxx', 'xxx');
  2. if (!$conexionD) {
  3.     echo "Error al intentar conectarse a mysql en A";
  4.     $error=mysql_errno();
  5.     echo "El error es:".$error;
  6.     exit();
  7. }

y luego cuando ejecuto en navegador me dice :

Error al intentar conectarse a mysql en A
El error es:2003
  #9 (permalink)  
Antiguo 21/02/2013, 11:03
 
Fecha de Ingreso: septiembre-2012
Ubicación: Sevilla
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

y si todos tiene permisos o al menos eso e creido darle-- en phpmyadmin e ido a privilegios y se los he dado eran esos o es en otro sitio???
  #10 (permalink)  
Antiguo 21/02/2013, 11:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

No es muy completa tu info, pero alcanza para saber que tienes un problema de acceso... Aunque deberías haber usado la otra función también, porque el error 2003 tiene múltiples causas, y sin más datos no es suficiente para darte una solución.
Por lo pronto, lee el manual de referencia (como hacemos todos cuando encontramos problemas): 5.6.8. Causas de errores Access denied

Como podrás apreciar en ese manual, si verificas cuál es el mensaje, podremos establecer qué problema tiene tu acceso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 21/02/2013, 11:08
 
Fecha de Ingreso: septiembre-2012
Ubicación: Sevilla
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

estoy probando lo de mysql_error: para ver si me da alg más de informacion ahora te comento vale
  #12 (permalink)  
Antiguo 21/02/2013, 11:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

Cita:
Iniciado por nataliagb1992 Ver Mensaje
y si todos tiene permisos o al menos eso e creido darle-- en phpmyadmin e ido a privilegios y se los he dado eran esos o es en otro sitio???
Un usuario sólo puede dar permisos iguales o menores a los que posee al momento de crear otro usuario.
Los permisos que hayas dado dependen, entonces, de los que tu mismo tenías, y muchos de ellos (especialmente los de conexión), no son genéricos, sino que deben ser indicados expresamente.
Incluso, ciertos privilegios requieren tener acceso al root para ser dados....

El manual de referencia lo dice claramente.

Leelo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 21/02/2013, 11:09
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

Ve paso a paso , y descarta problemas.Los problemas de conexión que estás teniendo, son independientes de PHP. Intenta resolverlos dando los permisos necesarios, e intentando conectar desde tu maquina física, usando un cliente mysql (el cliente mysql de linea de comando es bastante).
Puedes tener problemas de firewall.Compruébalo también.Pero mientras no conectes "a mano" desde línea de comando, meter PHP (una nueva variable) en el problema, sólo te va a liar.
  #14 (permalink)  
Antiguo 21/02/2013, 11:11
 
Fecha de Ingreso: septiembre-2012
Ubicación: Sevilla
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

Código PHP:
Ver original
  1. echo "Error al intentar conectarse a mysql en A<br>";
  2.     $error=mysql_errno();
  3.     $error2= mysql_error($conexionA);
  4.     echo "El error es:".$error ." y con mysql error nos dice:".$error2;
  5.     exit();

L que nos dice en el navegador es :

Error al intentar conectarse a mysql en Dolibarr
El error es:2003 y con mysql error nos dice:

en error 2 no se guarda nada
  #15 (permalink)  
Antiguo 21/02/2013, 11:12
 
Fecha de Ingreso: septiembre-2012
Ubicación: Sevilla
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

como me meto desde linea de comando en el mysql de otro servidor ??
  #16 (permalink)  
Antiguo 21/02/2013, 11:14
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

mysql -h XXX.XXX.XXX.XXX
  #17 (permalink)  
Antiguo 21/02/2013, 11:17
 
Fecha de Ingreso: septiembre-2012
Ubicación: Sevilla
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

mysql -h 192.xxx.xxx.xxx
ERROR 2003 (HY000): Can't connect to MySQL server on '192xxx.xxx.xxx' (111)
¿Como lo soluciono?
  #18 (permalink)  
Antiguo 21/02/2013, 11:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

Por la repuesta, ni siquiera tienes acceso a ese host...
¿Estás seguro de estar viendo esa IP desde tu máquina?
Esos dos hosts tienen a su vez instalado un servicio de MySQL?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #19 (permalink)  
Antiguo 21/02/2013, 11:21
 
Fecha de Ingreso: septiembre-2012
Ubicación: Sevilla
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

aver yo siempre me conecto con esos servidors por ssh y si tiene mysql ya que tengo hay sus tablas y bases de datos y trabajo con ellos
  #20 (permalink)  
Antiguo 21/02/2013, 11:24
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

Intenta hacer :
telnet localhost 3306
desde la maquina virtual donde corre el servidor mysql.Debería conectar.
y luego
telnet XXX.XXX.XXX.XXX 3306 , con XXX.XXX.XXX.XXX , la ip externa de ese mismo servidor.


Desde tu máquina fisica:
telnet XXX.XXX.XXX.XXX 3306

Posiblemente, no conecte.
Si es así, puede ser porque :
1) Haya un firewall en la máquina virtual que esté impidiendo conexiones entrantes por el puerto estandar de mysql 3306 (estoy suponiendo que no lo has cambiado).
2) El servidor mysql no está escuchando en la dirección externa, sólo en localhost.
  #21 (permalink)  
Antiguo 21/02/2013, 11:37
 
Fecha de Ingreso: septiembre-2012
Ubicación: Sevilla
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

Desde el servidor remoto (virtual)

telnet localhost 3306
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
?
5.1.63-0+squeeze1�Qc~q=znyoB;?l#g^!(C
^CConnection closed by foreign host.

DEsde makina fisica con la ip publica del servidor virtual

telnet aaa.aaa.aaa.aaa 3306
Trying aaa.aaa.aaa.aaa...
telnet: Unable to connect to remote host: Connection refused


Y COMO PUEDO HACER PARA QUE ME DEJE ENTRAR DESDE FUERA Y NO SOLO DESDE LOCALHOST
  #22 (permalink)  
Antiguo 21/02/2013, 11:40
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

Supongo que en tu maquina virtual tienes ejecutandose un firewall. Tendrás que configurar el firewall para permitir conexiones entrantes por el puerto 3306

Aqui tienes un tutorial completo
  #23 (permalink)  
Antiguo 21/02/2013, 11:41
 
Fecha de Ingreso: septiembre-2012
Ubicación: Sevilla
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

como las puedo cambiar , desde donde??? por comando ,cuales??
  #24 (permalink)  
Antiguo 25/02/2013, 12:11
 
Fecha de Ingreso: septiembre-2012
Ubicación: Sevilla
Mensajes: 144
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como conectar con dos servidores distintos para pasar datos de una bd a ot

El tema quedo solucionado Los pasos a seguir en ubuntu son los siguientes:

En cada uno de los servidores de las bases de datos tenemos que comprobar que nuestro puerto de mysql esté abierto. Para ellos nos dirigimos a /etc/mysql/my.conf

en este tendremos que buscar [mysqld]
y donde pone bind-address= 127.0.0.0 (esto es que no esta activo) lo cambiamos por la propia ip del servidor
guardams y cerramos el archivo
y reseteamos el servidor de mysql
/etc/init.d/mysql restart

Una hecho esto en cada uno de los servidores nos dirigimos a la maquina fisica e intentamos entrar en cada uno de ls mysql de los servidres para ello debemos introducir:

mysql -h IPservidorRemoto -u usuarioRemoto

de este modo se abre..
Esta es una forma muy resumida de cntar lo que viene en el magnifico manual que me paso dashtrash. Muchas gracias a todos y cierro este Debate

Etiquetas: bd, distintos, insert, mysql, select, servidores, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:33.