Configuración Completa de Replicación MySQL en Ubuntu 18.04 para Bases de Datos Escalables
La replicación maestro-esclavo en MySQL es una solución muy utilizada para asegurar la alta disponibilidad y escalabilidad de las bases de datos. En esta configuración, un servidor actúa como maestro, mientras que uno o más servidores esclavos replican automáticamente los cambios. En este artículo, te explicaremos cómo configurar la replicación maestro-esclavo de MySQL en Ubuntu 18.04 de manera sencilla y rápida.
Requisitos Previos
Antes de comenzar, asegúrate de cumplir con los siguientes requisitos:
- Dos servidores Ubuntu 18.04 (uno actuará como maestro y otro como esclavo).
- MySQL instalado en ambos servidores.
- Acceso root o privilegios de sudo.
Paso 1: Configurar el Servidor Maestro
Primero, configuramos el servidor maestro para habilitar la replicación. Abre el archivo de configuración de MySQL en el maestro:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Dentro del archivo, asegúrate de que las siguientes líneas estén presentes y configuradas:
bind-address = 0.0.0.0
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
- bind-address permite que MySQL escuche en todas las interfaces de red.
- server-id debe ser único en la red, por lo que asignamos el valor 1 para el maestro.
- log_bin habilita el registro de binarios, necesario para la replicación.
Reinicia MySQL en el servidor maestro:
sudo systemctl restart mysql
Paso 2: Crear un Usuario para la Replicación
Ahora, necesitamos crear un usuario en el servidor maestro que se encargue de la replicación. Abre el cliente MySQL y ejecuta el siguiente comando:
mysql -u root -p
Dentro de la consola MySQL, crea un usuario replicador y otórgale los permisos necesarios:
CREATE USER 'replicador'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replicador'@'%';
FLUSH PRIVILEGES;
Este usuario se encargará de replicar los datos desde el maestro al esclavo.
Paso 3: Configurar el Servidor Esclavo
Ahora, en el servidor esclavo, abre el archivo de configuración de MySQL:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Configura los siguientes parámetros:
server-id = 2
relay-log = /var/log/mysql/mysql-relay-bin.log
El server-id debe ser diferente al del maestro. Guarda los cambios y reinicia MySQL en el esclavo:
sudo systemctl restart mysql
Paso 4: Conectar el Esclavo al Maestro
Con MySQL configurado en ambos servidores, necesitamos indicar al esclavo que se conecte al maestro. En el servidor esclavo, abre el cliente MySQL y ejecuta el siguiente comando:
CHANGE MASTER TO
MASTER_HOST='IP_DEL_MAESTRO',
MASTER_USER='replicador',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS= 4;
Finalmente, inicia el proceso de replicación en el esclavo:
START SLAVE;
Para verificar que la replicación esté funcionando correctamente, ejecuta:
SHOW SLAVE STATUS\G;
Si todo está correcto, deberías ver el estado de la replicación en ejecución.
Conclusión
Configurar la replicación maestro-esclavo de MySQL en Ubuntu 18.04 es una tarea sencilla si sigues estos pasos. Esta configuración es fundamental para entornos de producción que requieren alta disponibilidad y redundancia de datos. ¡Ahora tienes un sistema de base de datos escalable y preparado para soportar cargas de trabajo crecientes!