Guía de tecnologías

Configurar el esclavo de MySQL

5 min read Bases de Datos Actualizado 14 Oct 2025
Configurar esclavo MySQL con SSL y replicación
Configurar esclavo MySQL con SSL y replicación

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

Autor
Edición

Materiales similares

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

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

Solucionar pérdida de paquetes en Fallout 76
Gaming

Solucionar pérdida de paquetes en Fallout 76

Restaurar datos perdidos en Android
Android

Restaurar datos perdidos en Android

Cómo descargar Reels privados de Instagram
Redes sociales

Cómo descargar Reels privados de Instagram

Solucionar errores de WatchGuard VPN en Windows
VPN, Seguridad

Solucionar errores de WatchGuard VPN en Windows

Abrir archivos M3U8 en todos los dispositivos
Multimedia

Abrir archivos M3U8 en todos los dispositivos