Base de datos · 3 min read · Dec 22, 2025

Cómo Configurar la Replicación de Base de Datos en MySQL

¡Este es un “copiar y pegar” HowTo!

La forma más fácil de seguir este tutorial es usar un cliente de línea de comandos/cliente SSH (como

PuTTY

para Windows) y simplemente copiar y pegar los comandos (excepto donde tengas que proporcionar tu propia información como direcciones IP, nombres de host, contraseñas,…). Esto ayuda a evitar errores tipográficos.

Cómo Configurar la Replicación de Base de Datos en MySQL

Versión 1.1
Autor: Falko Timme
Última edición: 01/14/2006

Este tutorial describe cómo configurar la replicación de base de datos en MySQL. La replicación de MySQL te permite tener una copia exacta de una base de datos desde un servidor maestro en otro servidor (esclavo), y todas las actualizaciones a la base de datos en el servidor maestro se replican inmediatamente a la base de datos en el servidor esclavo para que ambas bases de datos estén sincronizadas. Esto no es una política de respaldo porque un comando DELETE emitido accidentalmente también se llevará a cabo en el esclavo; pero la replicación puede ayudar a proteger contra fallos de hardware.

En este tutorial mostraré cómo replicar la base de datos exampledb desde el maestro con la dirección IP 192.168.0.100 a un esclavo. Ambos sistemas (maestro y esclavo) están ejecutando Debian Sarge; sin embargo, la configuración debería aplicarse a casi todas las distribuciones con poca o ninguna modificación.

Ambos sistemas tienen MySQL instalado, y la base de datos exampledb con tablas y datos ya existe en el maestro, pero no en el esclavo.

Quiero decir primero que esta no es la única forma de configurar un sistema así. Hay muchas maneras de lograr este objetivo, pero esta es la forma que elijo. No emito ninguna garantía de que esto funcionará para ti.

1 Configurar El Maestro

Primero tenemos que editar /etc/mysql/my.cnf. Tenemos que habilitar la red para MySQL, y MySQL debería escuchar en todas las direcciones IP, por lo tanto comentamos estas líneas (si existen):

| #skip-networking #bind-address = 127.0.0.1 |

Además, tenemos que decirle a MySQL para qué base de datos debería escribir registros (estos registros son utilizados por el esclavo para ver qué ha cambiado en el maestro), qué archivo de registro debería usar, y tenemos que especificar que este servidor MySQL es el maestro. Queremos replicar la base de datos exampledb, así que ponemos las siguientes líneas en /etc/mysql/my.cnf:

| log-bin = /var/log/mysql/mysql-bin.log binlog-do-db=exampledb server-id=1 |

Luego reiniciamos MySQL:

/etc/init.d/mysql restart

Luego iniciamos sesión en la base de datos MySQL como root y creamos un usuario con privilegios de replicación:

mysql -u root -p
Introduce la contraseña:

Ahora estamos en la consola de MySQL.

GRANT REPLICATION SLAVE ON . TO ‘slave_user’@’%’ IDENTIFIED BY ‘’; (¡Reemplaza con una contraseña real!)
FLUSH PRIVILEGES;

A continuación (todavía en la consola de MySQL) haz esto:

USE exampledb;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

El último comando mostrará algo como esto:

| +---------------+----------+--------------+------------------+ | File | Position | Binlog_do_db | Binlog_ignore_db | +---------------+----------+--------------+------------------+ | mysql-bin.006 | 183 | exampledb | | +---------------+----------+--------------+------------------+ 1 row in set (0.00 sec) |

Escribe esta información, ¡la necesitaremos más tarde en el esclavo!

Luego sal de la consola de MySQL:

quit;


Hay dos posibilidades para obtener las tablas y datos existentes de exampledb del maestro al esclavo. La primera es hacer un volcado de la base de datos, la segunda es usar el comando LOAD DATA FROM MASTER; en el esclavo. Este último tiene la desventaja de que la base de datos en el maestro estará bloqueada durante esta operación, así que si tienes una base de datos grande en un sistema de producción de alto tráfico, esto no es lo que quieres, y recomiendo seguir el primer método en este caso. Sin embargo, el último método es muy rápido, así que describiré ambos aquí.

Si quieres seguir el primer método, entonces haz esto:

mysqldump -u root -p –opt exampledb > exampledb.sql (¡Reemplaza con la contraseña real para el usuario MySQL root! Importante: ¡No hay ningún espacio entre -p y !)

Esto creará un volcado SQL de exampledb en el archivo exampledb.sql. ¡Transfiere este archivo a tu servidor esclavo!

Si quieres seguir el camino de LOAD DATA FROM MASTER; entonces no hay nada que debas hacer ahora.


Finalmente tenemos que desbloquear las tablas en exampledb:

mysql -u root -p
Introduce la contraseña:
UNLOCK TABLES;
quit;

Ahora la configuración en el maestro está terminada. ¡Vamos al esclavo…

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.