Configurar el esclavo de MySQL
Objetivo principal
Configurar server2 como esclavo de server1 para que la base de datos exampledb se replique de forma segura mediante SSL.
1. Preparativos breves
- Asegúrate de que el servidor maestro (server1) ya tiene habilitada la replicación y que obtuviste los valores de SHOW MASTER STATUS; (archivo de log y posición).
- Ten a mano las credenciales del usuario de replicación y la contraseña.
- Copia los certificados SSL al esclavo en rutas accesibles (ej.: /etc/mysql/newcerts/).
2. Editar el archivo de configuración del esclavo
Abre /etc/mysql/my.cnf y añade o verifica estos ajustes en la sección [mysqld]:
server2:
vi /etc/mysql/my.cnf
| [...] server-id=2 master-connect-retry=60 replicate-do-db=exampledb [...]
|
Importante: el valor de server-id debe ser único y distinto al del maestro.
Reinicia MySQL después de editar:
/etc/init.d/mysql restart
3. Crear e importar la base de datos vacía en el esclavo
Antes de iniciar la replicación, crea una base de datos vacía exampledb en server2:
mysql -u root -p
CREATE DATABASE exampledb;
quit;
Ahora importa el volcado SQL (snapshot.sql) en server2:
/usr/bin/mysqladmin --user=root --password=yourrootsqlpassword stop-slave
cd /tmp
mysql -u root -pyourrootsqlpassword exampledb < snapshot.sql
Vuelve a conectarte al cliente MySQL:
mysql -u root -p
4. Configurar CHANGE MASTER (parámetros clave)
Ejecuta el comando siguiente en server2, reemplazando los valores por los obtenidos desde SHOW MASTER STATUS; en el maestro y tus rutas de certificado:
CHANGE MASTER TO MASTER_HOST='192.168.0.100', MASTER_USER='slave_user', MASTER_PASSWORD='slave_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=106, MASTER_SSL=1, MASTER_SSL_CA = '/etc/mysql/newcerts/ca-cert.pem', MASTER_SSL_CERT = '/etc/mysql/newcerts/client-cert.pem', MASTER_SSL_KEY = '/etc/mysql/newcerts/client-key.pem';
Qué significa cada parámetro:
- MASTER_HOST: IP o nombre del maestro.
- MASTER_USER: usuario con privilegios de replicación en el maestro.
- MASTER_PASSWORD: contraseña de ese usuario en el maestro.
- MASTER_LOG_FILE / MASTER_LOG_POS: archivo y posición indicados por SHOW MASTER STATUS; en el maestro.
- MASTER_SSL=1: fuerza uso de conexión SSL.
- MASTER_SSL_CA / MASTER_SSL_CERT / MASTER_SSL_KEY: rutas a CA y certificados cliente en el esclavo.
5. Iniciar y verificar el esclavo
Inicia el esclavo:
START SLAVE;
Comprueba el estado:
SHOW SLAVE STATUS \G
Es esencial que en la salida los valores de Slave_IO_Running y Slave_SQL_Running sean Yes. Además, al usar SSL deberías ver valores en Master_SSL_Allowed, Master_SSL_CA_File, Master_SSL_Cert y Master_SSL_Key.
Ejemplo de salida (salida truncada para lectura):
mysql> SHOW SLAVE STATUS \G
************************* 1. row *************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.100
Master_User: slave_user
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 106
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: exampledb
Master_SSL_Allowed: Yes
Master_SSL_CA_File: /etc/mysql/newcerts/ca-cert.pem
Master_SSL_Cert: /etc/mysql/newcerts/client-cert.pem
Master_SSL_Key: /etc/mysql/newcerts/client-key.pem
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
1 row in set (0.00 sec)
mysql>
Sal del cliente MySQL cuando termines:
quit;
Ahora, cuando exampledb se actualice en el maestro, los cambios se replicarán al esclavo. Prueba la replicación insertando o actualizando datos en el maestro.
6. Solución de problemas común
- Slave_IO_Running = No o Slave_SQL_Running = No: revisar /var/log/syslog o el log de error de MySQL para mensajes. También ejecutar SHOW SLAVE STATUS \G y observar Last_IO_Error y Last_SQL_Error.
- Errores SSL: comprobar permisos y propiedad de los archivos de certificado, y rutas exactas en MASTERSSL*.
- Desincronización: si el binlog file/pos son incorrectos, detén el esclavo, corrige el punto de inicio o vuelve a generar un snapshot consistente.
- Usuario de replicación: comprobar GRANT REPLICATION SLAVE ON . TO ‘slave_user’@’ip’; en el maestro.
Important: Si el maestro rota binlogs con frecuencia, considera usar un backup consistente (mysqldump –master-data=2 o xtrabackup) al generar snapshot.sql.
7. Criterios de aceptación (verificación rápida)
- El esclavo arranca sin errores.
- SHOW SLAVE STATUS \G muestra Slave_IO_Running: Yes y Slave_SQL_Running: Yes.
- MasterSSL_Allowed: Yes y las rutas Master_SSL* apuntan a archivos existentes.
- Cambios sencillos en exampledb en el maestro aparecen en el esclavo en pocos segundos (según carga).
8. Lista de verificación por roles
- DBA:
- Confirmar archivo y posición del maestro con SHOW MASTER STATUS;.
- Crear usuario de replicación y conceder privilegios.
- Verificar integridad del snapshot importado.
- Sysadmin:
- Transferir certificados al esclavo y fijar permisos (600/propietario mysql o root según instalación).
- Abrir puerto 3306 sólo entre maestro y esclavo (firewall).
- Operaciones:
- Programar reinicio de MySQL fuera de horas pico si es necesario.
- Monitorizar Seconds_Behind_Master y alertar si crece.
9. Pruebas/aceptación sugeridas
- Caso 1: Crear una tabla y filas pequeñas en maestro ➜ confirmar aparecen en esclavo.
- Caso 2: Ejecutar un UPDATE masivo en maestro ➜ validar que el esclavo procesa sin errores y Seconds_Behind_Master vuelve a 0.
- Caso 3: Revocar permiso del usuario de replicación en maestro ➜ comprobar que el esclavo reporta error IO y Last_IO_Error refleja fallo de autenticación.
10. Notas de seguridad y consideraciones locales
- Si usas certificados autofirmados, establece Master_SSL_Verify_Server_Cert conforme a la política de seguridad.
- Protege la contraseña del usuario de replicación y evita exponerla en scripts en texto claro.
- En entornos con requisitos GDPR o locales, evalúa cifrado en reposo y controles de acceso según la normativa.
Resultado final y recomendaciones
- Tras la configuración, automatiza backups regulares del maestro y del esclavo. Monitorea la replicación con alertas por desviaciones de Seconds_Behind_Master.
- Documenta la configuración (my.cnf, rutas de certificados, comandos usados) en tu repositorio de operaciones.
Resumen: Sigue los pasos de edición de my.cnf, crea la base vacía, importa el snapshot, ejecuta CHANGE MASTER con parámetros SSL, inicia el esclavo y verifica que Slave_IO_Running y Slave_SQL_Running sean Yes. Si algo falla, revisa logs y las rutas/permiso de certificados.
Enlaces
- MySQL: http://www.mysql.com/
- Debian: http://www.debian.org/
Materiales similares

Plan de energía en menú contextual — Windows 11/10

Solucionar pérdida de paquetes en Fallout 76

Restaurar datos perdidos en Android

Cómo descargar Reels privados de Instagram
