Cómo configurar la replicación de esclavo maestro en MySQL

Acerca de la replicación de MySQL

La replicación de MySQL es un proceso que le permite mantener fácilmente múltiples copias de los datos de MySQL al copiarlos automáticamente de una base de datos maestra a una base de datos esclava. Esto puede ser útil por muchas razones, incluida la configuración de una copia de seguridad de los datos, una forma de analizarlos sin usar la base de datos principal, o simplemente como un medio para escalar.

Ejemplo muy simple de la replicación de mysql: un maestro enviará información a un solo esclavo. Para que el proceso funcione, necesitará dos direcciones IP: una del servidor maestro y una del esclavo.

Este tutorial utilizará las siguientes direcciones IP:

12.34.56.789- Base de datos maestra

12.23.34.456- Base de datos de esclavos

Preparar

En este artículo se supone que tiene un usuario con privilegios de sudo y tiene instalado MySQL. Si no tiene mysql, puede instalarlo con este comando:

Paso uno: configurar la base de datos maestra

Abra el archivo de configuración de mysql en el servidor maestro.

Una vez dentro de ese archivo, necesitamos hacer algunos cambios.

El primer paso es encontrar la sección que se ve así, vinculando el servidor al host local:

Reemplace la dirección IP estándar con la dirección IP del servidor.

El siguiente cambio de configuración se refiere a la ID del servidor, ubicada en la sección [mysqld]. Puede elegir cualquier número para este punto (puede ser más fácil comenzar con 1), pero el número debe ser único y no puede coincidir con ningún otro ID de servidor en su grupo de replicación. Voy a seguir adelante y llamar a este 1.

Asegúrate de que esta línea no tenga comentarios.

Pasa a la línea log_bin. Aquí es donde se guardan los detalles reales de la replicación. El esclavo va a copiar todos los cambios que están registrados en el registro. Para este paso, simplemente necesitamos descomentar la línea que hace referencia a log_bin:

Finalmente, debemos designar la base de datos que se replicará en el servidor esclavo. Puede incluir más de una base de datos repitiendo esta línea para todas las bases de datos que necesitará.

Después de realizar todos los cambios, siga adelante, guarde y salga del archivo de configuración.

Actualizar MySQL.

Los próximos pasos se llevarán a cabo en el shell de MySQL, en sí.

Abre el shell de MySQL.

Necesitamos otorgar privilegios al esclavo. Puedes usar esta línea para nombrar a tu esclavo y configurar su contraseña. El comando debe estar en este formato:

Ir a la par de:

La siguiente parte es un poco meticulosa. Para llevar a cabo la tarea, deberá abrir una nueva ventana o pestaña, además de la que ya está usando unos pocos pasos en la línea.

En su pestaña actual, cambie a «newdatabase».

A continuación, bloquee la base de datos para evitar nuevos cambios:

Luego escribe:

Verás una tabla que debería verse así:

Esta es la posición desde la cual la base de datos esclava comenzará a replicarse. Anota estos números, te serán útiles más adelante.

Si realiza cambios nuevos en la misma ventana, la base de datos se desbloqueará automáticamente. Por este motivo, debe abrir la nueva pestaña o ventana y continuar con los siguientes pasos allí.

Continuando con la base de datos aún bloqueada, exporte su base de datos usando mysqldump en la nueva ventana (asegúrese de escribir este comando en el shell bash, no en MySQL).

Ahora, volviendo a su ventana original, desbloquee las bases de datos (haciéndolas que se puedan volver a escribir). Terminar saliendo de la concha.

Ahora que ha terminado con la configuración de la base de datos maestra.

Paso dos: configurar la base de datos de esclavos

Una vez que haya configurado la base de datos maestra. Puede dejarlo de lado por un tiempo, y ahora comenzaremos a configurar la base de datos esclava.

Inicie sesión en su servidor esclavo, abra el shell de MySQL y cree la nueva base de datos que replicará desde el maestro (luego salga):

Importe la base de datos que exportó previamente desde la base de datos maestra.

Ahora necesitamos configurar la configuración del esclavo de la misma manera que hicimos el maestro:

Tenemos que asegurarnos de que tenemos algunas cosas configuradas en esta configuración. El primero es el servidor-id. Este número, como se mencionó anteriormente, debe ser único. Dado que está configurado en el valor predeterminado (aún 1), asegúrese de cambiarlo, es algo diferente.

Después de eso, asegúrese de que tiene los siguientes tres criterios debidamente llenados:

Deberá agregar en la línea de registro de retransmisión: no está ahí por defecto. Una vez que haya realizado todos los cambios necesarios, guarde y salga del archivo de configuración esclavo.

Reinicie MySQL una vez más:

El siguiente paso es habilitar la replicación desde el shell de MySQL.

Abra el shell de MySQL una vez más y escriba los siguientes detalles, reemplazando los valores para que coincidan con su información:

Este comando logra varias cosas al mismo tiempo:

  1. Designa el servidor actual como el esclavo de nuestro servidor maestro.
  2. Proporciona al servidor las credenciales de inicio de sesión correctas.
  3. Por último, le permite al servidor esclavo saber desde dónde comenzar a replicar; El archivo de registro maestro y la posición del registro provienen de los números que anotamos anteriormente.

Con eso, has configurado un servidor maestro y esclavo.

Activar el servidor esclavo:

Puede ver los detalles de la replicación de esclavos escribiendo este comando. El \ G reorganiza el texto para que sea más legible.

Si hay un problema en la conexión, puedes intentar iniciar esclavo con un comando para omitirlo:

Todo listo.