LinuxParty
Configuración de replicación de bases de datos MySQL en Ubuntu
La replicación en MySQL permite tener una copia exacta de una base de datos maestra (master) en otro servidor esclavo (slave), y que todos los cambios realizados en la master se reflejen automáticamente en el esclavo. No es una política de respaldo, ya que los borrados accidentales también se replican, pero sí ayuda a proteger datos ante fallos de hardware.
1. Prerrequisitos
- Servidor server1 (master): Ubuntu, IP
192.168.0.100
, base de datosexampledb
ya creada. - Servidor server2 (slave): Ubuntu, IP
192.168.0.101
, sinexampledb
. - Acceso root en ambos sistemas (SSH + sudo).
2. Instalación de MySQL
En ambos servidores:
sudo apt-get update sudo aptitude install mysql-server mysql-client
Durante la instalación, configura la contraseña para el usuario root@localhost
.
3. Configuración del servidor master (server1)
a) Escucha en todas las interfaces
Edita
/etc/mysql/my.cnf
y comenta o elimina:# bind-address = 127.0.0.1
Reinicia MySQL y verifica:
sudo /etc/init.d/mysql restart netstat -tap | grep mysql
Aparecerá algo así: tcp 0 0 *:mysql ... LISTEN ... mysqld
.
b) Crear usuario de replicación
Conéctate al shell de MySQL:
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'slave_password'; FLUSH PRIVILEGES;
c) Habilitar binlogs y definir servidor master
En
/etc/mysql/my.cnf
, sección[mysqld]
, añade:server-id = 1 log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M binlog_do_db = exampledb
Reinicia MySQL .
d) Crear snapshot consistente
En MySQL shell:
USE exampledb; FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS;
Anota el campo File
(ej. mysql-bin.000001
) y Position
(ej. 19467
) .
Sin cerrar esta sesión, en otra terminal:
mysqldump -u root -pyourrootsqlpassword --opt exampledb > snapshot.sql scp snapshot.sql Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/tmp/
Luego, en la sesión SQL:
UNLOCK TABLES; QUIT;
4. Configuración del servidor esclavo (server2)
a) Ajustes en my.cnf
En
/etc/mysql/my.cnf
, agrega bajo[mysqld]
:server-id = 2 master-connect-retry = 60 replicate-do-db = exampledb
Reinicia MySQL.
b) Preparar base de datos e importar snapshot
mysql -u root -p -e "CREATE DATABASE exampledb;" mysql -u root -pyourrootsqlpassword exampledb < /tmp/snapshot.sql
c) Configurar replicación
En MySQL shell de server2:
CHANGE MASTER TO MASTER_HOST='192.168.0.100', MASTER_USER='slave_user', MASTER_PASSWORD='slave_password', MASTER_LOG_FILE='mysql-bin.000001', -- según snapshot MASTER_LOG_POS=19467; -- según snapshot START SLAVE; SHOW SLAVE STATUS\G
Revisa que Slave_IO_Running: Yes
y Slave_SQL_Running: Yes
, y que Seconds_Behind_Master: 0
.
5. Verificación final
Haz pruebas de inserción en el master:
USE exampledb; CREATE TABLE test (id INT PRIMARY KEY AUTO_INCREMENT, msg VARCHAR(50)); INSERT INTO test (msg) VALUES ('¡Hola slave!');
En server2, verifica:
USE exampledb; SELECT * FROM test;
Deberías ver los mismos datos, confirmando que la replicación funciona correctamente.
6. Conclusión
Este esquema master-slave es ideal para:
- Distribuir carga de lectura.
- Asegurar alta disponibilidad.
- Realizar backups sin afectar producción.
⚠️ Recuerda siempre mantener sincronizados server-id
, binlog_do_db
, y credenciales. Guarda los binlogs para poder reconstruir el slave en caso de fallos.
7. Próximos pasos
- Usar herramientas como Percona XtraBackup para respaldos sin bloqueo (howtoforge.com, github.com, dba.stackexchange.com, howtoforge.com, snapshooter.com).
- Configurar replicación sobre SSL.
- Implementar replicación circular (master↔slave).

-
Software
- Top Ten de las innovaciones de Software Open Source.
- Real Player 11, graba todos los vídeos de Internet
- Reconocimiento Optico de Caracteres con Tesseract OCR en Ubuntu 7.04
- Cómo Instalar Linux en una PlayStation 3, (Colección de Manuales)
- GROUP-E, Software para la gestión de proyectos y trabajo en Grupo.
- Kazaa 5.0.0
- Cree un álbum de fotos con Project Zero & REST
- Instalar Ubuntu o Fedora, desde Windows.
- PDF es ahora la norma ISO 32000
- MikeOS 1.1 (Default)
- Necromancer's Dos Navigator el mejor clon del ''Norton Commander/Midnight Comman
- Usando LaTeX: Aspectos Básicos [parte I]