• Domingo 22 de Diciembre de 2024, 13:33

Autor Tema:  Python / MySQL / Replicaciones  (Leído 4127 veces)

danymana

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Python / MySQL / Replicaciones
« en: Lunes 20 de Septiembre de 2010, 15:53 »
0
Hola a todos...

Estoy haciendo un desarrollo en Python 2.6 con MySQL 5

La api correrá en servidores Lunix Debian (Master/Esclavo), pero por el momento para efectuar las pruebas lo estoy haciendo con el Wamp 2.0 montado en Windows XP y Windows 2000.

Lo que tengo que hacer es grabar en el master (Win.XP) y que se replique en el esclavo(Win.2000).

Monto las bases en cada servidor, paremetrizo el Master y el Slave, arranco, pruebo desde el phpmyadmin del master ingresar un registro, y se actualiza perfectamente en el esclavo.

Ingreso en mi aplicación en Python, actualizo el registro el el Master, compruebo que se actualize en el Mastar (y lo hace perfectamente), pero no me pasa la replica al Slave..!!!!!!!! Todo lo que haga en el phpmyadmin del master, se replica perfectamente en el esclavo, lo que haga en Python, me actualiza perfectamente el master, pero el esclavo ni se entera...!!!!


Que Puede estár sucediendo ...?????

Gracias....

Daniel.


PYTHON / MYSQL:

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Python / MySQL / Replicaciones
« Respuesta #1 en: Lunes 20 de Septiembre de 2010, 15:58 »
0
Revisa los permisos del usuario en la base de datos del esclavo, en la DB mysql tabla users campo host, que permisos tenga el usuario desde otras máquinas.
El pasado son solo recuerdos, el futuro son solo sueños

danymana

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Python / MySQL / Replicaciones
« Respuesta #2 en: Lunes 20 de Septiembre de 2010, 17:24 »
0
Cita de: "Edo"
Revisa los permisos del usuario en la base de datos del esclavo, en la DB mysql tabla users campo host, que permisos tenga el usuario desde otras máquinas.

"Edo" Gracias por responderme...

Tengo el mismo usuario y sin clave, en ambos servidores, con ALL PRIVILEGES.

Mira ... efectué la siguiente prueba...: hice un proceso simple de inserción, importando datos desde un archivo ASCII, usando python con la librería MySQLdb y me replico perfectamente todos los registros en el esclavo, (tal como uno lo espera...).

Pero en el sistema que estoy desarrollando, en el cual uso python/wxpython/reportlab/pil/mysql/etc... no lo está haciendo.!!!, a pesar que utilizo el mismo usuario...! por lo que te diría que no pasa por el tema permisos...

En el sistema, lo estoy haciendo un poco mas compliado al manejo (si comparamos con el proceso que te comentaba anteriormente), ya que todo lo que tenga que ver con la Base de Datos, lo hago en un objeto destinado exclusivamente para el manejo de ésta (procesos de inserciones, modificaciones, lecturas, etc... sobre MySql), y en los distitos programas lo hago en una forma abstracta, para de esta forma si tengo que mudarme de B.D. no tenga que tacar todo el sistema, sino solo el objeto destinado a éste fin.
Pero no entiendo que parámetro le debo estar pasando en forma involuntária, como para que se modifique el master, sin que éste acuse algún error y no efectúe la replicacion en el esclavo; pero como te comentaba anteriormente,  si hago un simple programita de inserción me funcione perfectamente (usando el mismo usuario..!!).

Desde ya muchas gracias...

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Python / MySQL / Replicaciones
« Respuesta #3 en: Lunes 20 de Septiembre de 2010, 17:34 »
0
Probasté haciendo insercción directa desde código, o con la línea de comandos?, ósea, sin trabajar tú aplicación wx
El pasado son solo recuerdos, el futuro son solo sueños

danymana

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Python / MySQL / Replicaciones
« Respuesta #4 en: Lunes 20 de Septiembre de 2010, 21:18 »
0
Cita de: "Edo"
Probasté haciendo insercción directa desde código, o con la línea de comandos?, ósea, sin trabajar tú aplicación wx

Ingreso actualizaciones desde el phpmyadmin o desde la linea de comandos del MySql del Master, y se reflejan en el Servidor Esclavo perfectamente,

Efectué un scrip de prueba, que utiliza la misma librería que uso para las ABMC (Altas, Bajas, Modificaciones y Consultas de la DB), e inserto un registro...
y en el master me graba bien, pero no se pasan al esclavo.

Evidentemente hay algo en la librería de python, pero que puede ser que me deje grabar en el master sin acusar errores, y no se actualice en el esclavo???

that is the question...!!!

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Python / MySQL / Replicaciones
« Respuesta #5 en: Lunes 20 de Septiembre de 2010, 22:35 »
0
Prueba esto directamente en el interprete me comentas si graba o no
Código: Python
  1. >>> import MySQLdb
  2. >>> conn = MySQLdb.connect(host="host", user="usuario", passwd="password", db="basededatos")
  3. >>> cursor = conn.cursor()
  4. >>> script = 'INSERT INTO tabla VALUES(LOS DATOS QUE VAN EN LA TABLA)'
  5. >>> cursor.execute(script)
  6.  
El pasado son solo recuerdos, el futuro son solo sueños

danymana

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Python / MySQL / Replicaciones
« Respuesta #6 en: Lunes 20 de Septiembre de 2010, 23:04 »
0
Cita de: "Edo"
Prueba esto directamente en el interprete me comentas si graba o no
Código: Python
  1. >>> import MySQLdb
  2. >>> conn = MySQLdb.connect(host="host", user="usuario", passwd="password", db="basededatos")
  3. >>> cursor = conn.cursor()
  4. >>> script = 'INSERT INTO tabla VALUES(LOS DATOS QUE VAN EN LA TABLA)'
  5. >>> cursor.execute(script)
  6.  


LO ENCONTREEEE...!!!!!!!!
Yo me conecto al Servidor/Usuario/Clave, pero no selecciono una base de datos en particular, ya que utilizo 3 DB, de las cuales 2 son las que se replican a las sucursales, porque la tercera es de los movimientos particulares de cada sucursal donde opera el sistema...

Si ejecuto en python.:
conn = MySQLdb.connect(host="host", user="usuario", passwd="password")
cursor = conn.cursor()
script = "INSERT INTO Base.tabla (campo1, campo2, campo3) VALUE ('valor1', 'valor2', 'valor3');"
cursor.execute(script)

Me funciona perfectamente para actualizar el Master, PERO NO ACTUALIZAR EL SERVIDOR ESCLAVO, es más lo ejecuto dentro de la línea de comandos del MySQL, y tampoco funciona la replicación...!!!

> 'INSERT INTO Base.tabla (campo1, campo2, campo3) VALUE ('valor1', 'valor2', 'valor3')     // graba en master pero no replica ///

Ahora...Yo no se si hay algúna limitación con respecto a ésto en MySQL o hay que tocar algún parámetro???

Si por las dudas tenes idea...Te lo agradecería...sino, lo mismo MIL GRACIAS...!!!!

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Python / MySQL / Replicaciones
« Respuesta #7 en: Lunes 20 de Septiembre de 2010, 23:06 »
0
lo que te digo entonces, eso es permisos, prueba colocando en el campo host de la tabla users de la DB mysql '%' o sino la IP de donde estás trabajando.
El pasado son solo recuerdos, el futuro son solo sueños

danymana

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Python / MySQL / Replicaciones
« Respuesta #8 en: Lunes 20 de Septiembre de 2010, 23:33 »
0
Cita de: "Edo"
lo que te digo entonces, eso es permisos, prueba colocando en el campo host de la tabla users de la DB mysql '%' o sino la IP de donde estás trabajando.

Si, ya tengo específico especificado el usuario con '%',

Voy a pasar este problemas para el foro de MySQL, para ver su alguien tiene idea si es algo de parametrización o un hueco en MySQL...