Blogs Media: CSS Mania | VivirLatino | Sentido Web | Apps Mania

Publicidad

Mié14Feb2007

Replicación en MySQL

16:00 H (CET)| Temas: MYSQL

Replicar una base de datos MySQL puede sonar a algo muy complicado, resulta más sencillo siguiendo el siguiente artículo que pasamos a comentar. Se trata de una de las base de datos (master) hacer que genere un log y otra (slave) lo lea.

Lo primero es añadir las siguientes líneas al fichero my.conf:

log-bin=<nombre-fichero-log>
binlog-do-db=<nombre-base-datos>
server-id=<numero-servidor>

El nombre de la base de datos si que debe ser el mismo en ambos servidores, los otros dos pueden ser cualesquiera, aunque el nombre del log suele ser el de host seguido de "-bin" y el id del servidor suele ser "1" para el maestro y "2" para el esclavo.

Después debes crear un usuario el cual se usará para replicarse con el esclavo:

GRANT REPLICATION SLAVE ON *.* TO '<usuario>'@'%' IDENTIFIED BY '<contraseña>';

También se puede usar el nombre del servidor esclavo en vez de %. Una vez creado el usuario, actualizamos los datos mediante FLUSH PRIVILEGES y FLUSH TABLES.

Si ejecutamos SHOW MASTER STATUS nos devuelve unos datos que son importantes para la replicación, sobre todo la columna File y la columna Position.

Una vez que el maestro ya está configurado, podemos empezar con la configuración del esclavo, eso sí, antes del inicio de la replicación ambas bases de datos deben tener la misma información. Para configurar el esclavo deberemos modificar su my.conf de la siguiente forma:

server-id=<numero-servidor>

siendo el número distinto al que usamos en el maestro, en nuestro ejemplo el maestro era "1" y el esclavo "2". Después deberemos ejecutar la siguiente sentencia:

CHANGE MASTER TO MASTER_HOST='<servidor-maestro>', MASTER_USER='<usuario-replicacion>', MASTER_PASSWORD='<contraseña-replicacion>', MASTER_LOG_FILE='<fichero-log>', MASTER_LOG_POS=<posición-log>;

Y ya por último reiniciamos MySQl, paramos el esclavo(STOP SLAVE), cargamos los datos del maestro (LOAD DATA FROM MASTER) y arrancamos el esclavo (START SLAVE).

MySQL replication

Vía / PixelGroovy

Relacionados

1. Elo ~ Miércoles, 18 Abr 2007 | 22:43H:

Como hago si tengo instalado wamp, no trae el archivo my.conf, Gracias

2. Luis ~ Jueves, 19 Abr 2007 | 08:46H:

En WAMP puedes acceder a la configuración de MySQL desde el icono de la barra de tareas.

Saludos

3. Ivan ~ Martes, 08 May 2007 | 17:23H:

Y como le hago para replicar en un hosting? es decir, si mi esclavo se encuentra en un hosting al cual no tengo acceso a los archivos de configuracion de MySQL. es posible recplicar?

4. Luis ~ Martes, 08 May 2007 | 20:13H:

Si tienes PhpMyAdmin si es posible hacerlo.

5. carlos Perea ~ Miércoles, 23 May 2007 | 00:12H:

Estimado Luis, Me puedes orientar con la siguiente situacion. Necesito replicar distintas bases de datos a un host. Es decir tengo varios masters y necesito replicar a un esclavo con objeto de concentrar bases de datos de diferentes puntos en un solo equipo.
Cualquier comentario será de gran ayuda.
Carlos Perea.

6. Luis ~ Miércoles, 23 May 2007 | 08:12H:

Hola Carlos.

Supongo que a parte de ser distintas máquinas, los masters son distintas BDs, si es así, lo que supongo que deberías hacer es lo que se cuenta arriba, pero para cada master/slave como si fueran independientes.

Saludos

7. IVan ~ Domingo, 22 Jul 2007 | 02:51H:

Hola luis. dices que si se puede realizar el proceso de replica en un hosting si tenemos phpMyAdmin. pero como? debemos seguir algunos pasos extras aparte de los publicados?

8. Javier Ortiz ~ Sábado, 13 Oct 2007 | 18:07H:

Hola Luis mi nombre es Javier Ortiz, por lo que acabo de leer sabes bastante de MYSQL, tengo un aplicativo q estoy comercializando y algunos clientes necesitan un servidor central ubicado en un lugar diferente a los puntos de venta, no hay red directa (Canales dedicados o VPN) y necesitamos replicar las bases de datos de los puntos de venta a un servidor central, cada punto tiene la misma base de datos con diferentes registros en las tablas, cual es la mejor manera de unir las bases de datos en el servidor central?? tu informacion seria de gran ayuda para nosotros, me gustaria saber si podiamos contactarnos directamente, mi mail es j_ortiz1003@hotmail.com

mil gracias

9. Zejulian velazquez zapata ~ Viernes, 28 Mar 2008 | 23:14H:

exelente el tema de la replicacionn de datos, creo que es muy importante para protegera l informacion, ace unos dias me preguntaba si esto existia o se podia acer y ya veo que si jejejeeejeeee.


bueno es todo

lo checare para ver como funciona

nos vemos en el futuro...!

10. Humbertito ~ Jueves, 03 Abr 2008 | 23:32H:

Hola necesito alguna forma de replicar una base de datos mysql
y lo unico que cuento en permisos y es lo que pueda realizar mediante SQl (no puedo acceder al servidor y modificar archivos) de antemano muchisimas gracias por su colaboracion

Humberto Pèrez G