Cómo configurar la replicación MySQL Master-Master

Cómo configurar la replicación MySQL Master-Master

La replicación MySQL Master-Slave es configurar Slave Server para actualizar inmediatamente tan pronto como se realicen cambios en el servidor maestro. Pero no actualizará el maestro si se realizan algún cambio en Slove Server. Lea este artículo para configurar la replicación maestra-esclavo.

Este artículo lo ayudará a configurar la replicación maestra-maestro entre los servidores mysql. En esta configuración si algún cambio realizado en cualquier servidor se actualizará en otro.

Detalles de configuración:
Master-1: 192.168.1.15 Master-2: 192.168.1.16 Base de datos: MyDB 

Si está utilizando diferentes versiones diferentes de MySQL en cualquiera de los servidores, use este enlace para verificar la compatibilidad.

Paso 1. Configurar el servidor MySQL Master-1

  • Edite el archivo de configuración de MySQL y agregue las siguientes líneas en la sección [MySQLD].
  • # vim /etc /mi.CNF 
    [mysqld] log-bin = mysql-bin binlog-do-db = mydb server-id = 1 
  • Reiniciar el servidor MySQL a los cambios en el momento.
  • # Servicio de reinicio mysqld 
  • Cree una cuenta MySQL en el servidor Master-1 con privilegios de esclavos de replicación a los que el cliente de replicación se conectará al maestro.
  • MySQL> Said Replication Slave en *.* A 'repl_user'@'%' identificado por 'SecretPassword'; MySQL> privilegios de descarga; 
  • Bloquear la declaración de escritura en todas las tablas, por lo que no se pueden hacer cambios después de tomar una copia de seguridad.
  • mysql> usar mydb; MySQL> Tablas de descarga con bloqueo de lectura; 
  • Verifique el valor actual del archivo de registro binario (archivo) y el valor de desplazamiento actual (posición) usando el siguiente comando.
  • MySQL> Mostrar estado maestro; +------------------+----------+--------------+------------------+ | Archivo | Posición | Binlog_do_db | Binlog_ignore_db | +------------------+----------+--------------+----- --------------+ | mysql-bin.000003 | 332 | mydb | | +------------------+----------+--------------+----- --------------+ 1 fila en el set (0.00 seg) 

    La salida anterior muestra que el archivo binario actual está utilizando mysql-bin.000003 y el valor de compensación es 332. Anote estos valores para usar en el servidor Master-2 en el siguiente paso.

  • Tome una copia de seguridad de la base de datos y cópiela a otro servidor MySQL.
  • # mysqldump -u root -p mydb> mydb.sql # scp mydb.SQL 192.168.1.16:/opt/ 
  • Después de completar la copia de seguridad, retire el bloqueo de lectura de las tablas, para que se puedan hacer cambios.
  • MySQL> Desbloquear tablas; 

    Paso 2. Configurar el servidor MySQL Master-2

  • Editar el archivo de configuración MySQL Master-2 y agregar los siguientes valores en la sección [MySQLD].
  • # vim /etc /mi.CNF 
    [mysqld] log-bin = mysql-bin binlog-do-db = mydb server-id = 1 

    Server-ID siempre es un valor numérico no cero. Este valor nunca será similar con otros servidores maestros o esclavos.

  • Reinicie el servidor MySQL, si ya había configurado el uso de replicación -skip-slave-start en inicio a no conectarse inmediato al servidor maestro.
  • # Servicio de reinicio mysqld 
  • Restaurar copia de seguridad de la base de datos tomada del servidor maestro.
  • # mysql -u root -p mydb < /opt/mydb.sql 
  • Cree una cuenta MySQL en el servidor Master-1 con privilegios de esclavos de replicación a los que el cliente de replicación se conectará al maestro.
  • MySQL> Said Replication Slave en *.* A 'repl_user'@'%' identificado por 'SecretPassword'; MySQL> privilegios de descarga; 
  • Verifique el valor actual del archivo de registro binario (archivo) y el valor de desplazamiento actual (posición) usando el siguiente comando.
  • MySQL> Mostrar estado maestro; +------------------+----------+--------------+------------------+ | Archivo | Posición | Binlog_do_db | Binlog_ignore_db | +------------------+----------+--------------+----- --------------+ | mysql-bin.000001 | 847 | mydb | | +------------------+----------+--------------+----- --------------+ 1 fila en el set (0.00 seg) 

    La salida anterior muestra que el archivo binario actual está utilizando mysql-bin.000001 y el valor de compensación es 847. Observe estos valores para usar en el paso 3.

  • Valores de opción de configuración en el servidor de esclavos utilizando el siguiente comando.
  • mysql> cambiar maestro a master_host = "192.168.1.15 ", -> master_user =" repl_user ", -> master_password =" SecretPassword ", -> Master_log_file =" MySQL -Bin.000003 ", -> master_log_pos = 332; 

    Paso 3: Complete la configuración en MySQL Master-1

    Inicie sesión en el servidor MySQL Master-1 y ejecute el siguiente comando.

    mysql> cambiar maestro a master_host = "192.168.1.16 ", maestro_user =" repl_user ", maestro_password =" SecretPassword ", maestro_log_file =" mysql-bin.000001 ", maestro_log_pos = 847; 
    Paso 4: Inicie el esclavo en ambos servidores

    Ejecutar el siguiente comando en ambos servidores para iniciar el proceso de esclavos de replicación.

    MySQL> Slave Start; 

    La replicación MySQL Master-Master se ha configurado con éxito en su sistema y en modo de trabajo. Para probar si la replicación está funcionando, realice cambios en cualquier servidor y verifique si los cambios se reflejan en otro servidor.

    Gracias por usar este tutorial, si es útil para usted, entonces no olvide compartirlo con sus amigos.