Cómo configurar la replicación MySQL Master-Slave en Ubuntu 18.04

Cómo configurar la replicación MySQL Master-Slave en Ubuntu 18.04

Mysql La replicación maestra-esclavo es un procedimiento que permite que los archivos de base de datos se repliquen o copian en uno o más nodos en una red. Esta configuración proporciona redundancia y tolerancia a fallas de tal manera que en caso de falla en el Nodo maestro, Las bases de datos aún se pueden recuperar en el Esclavo. Esto le da a los usuarios tranquilidad de que no todos se perderán en ninguna eventualidad, ya que una réplica de las bases de datos aún se puede recuperar de un servidor diferente.

En esta guía, aprenderá a realizar un Mysql base de datos Maestro-esclavo replicación en un Ubuntu 18.04 sistema.

Requisitos previos

En la configuración, vamos a tener dos servidores en ejecución Ubuntu 18.04 con las siguientes direcciones IP.

Servidor maestro: 10.128.0.28 Servidor de esclavos: 10.128.0.29 

Ahora vamos a sumergirnos y ver cómo podemos configurar el Maestro-esclavo configuración de replicación en Ubuntu.

Paso 1: Instale mysql en nodos maestros y esclavos

Ubuntu Los repositorios contienen versión 5.7 de Mysql. Para aprovechar cualquier característica nueva y evitar problemas potenciales, debe instalar la última versión de MySQL. Pero primero, actualicemos los dos nodos usando el siguiente comando APT.

$ sudo apt actualización 
Actualizar el software Ubuntu

Instalar Mysql En ambos nodos, ejecute el comando.

$ sudo apt install mysql-server mysql-client 
Instale el servidor MySQL en Ubuntu

A continuación, abra el mysql archivo de configuración.

$ sudo vim/etc/mysql/mysql.confusión.d/mysqld.CNF 

Sobre el Nodo maestro, Desplácese y localice el directorio atributo como se muestra a continuación.

enlace de enlace = 127.0.0.1 

Cambie la dirección de bucleza para que coincida con la dirección IP del Nodo maestro.

enlace de enlace = 10.128.0.28 
Establezca la dirección IP maestro MySQL

A continuación, especifique un valor para el ID de servidor atributo en el [mysqld] sección. El número que elija no debe coincidir con ningún otro número de ID de servidor. Asignemos el valor 1.

servidor-id = 1 
Establezca la identificación del servidor MySQL en el maestro

Al final del archivo de configuración, copie y pegue las líneas a continuación.

log_bin =/var/log/mysql/mysql-bin.log log_bin_index =/var/log/mysql/mysql-bin.registro.índice relay_log =/var/log/mysql/mysql-relay-bin relay_log_index =/var/log/mysql/mysql-relay-bin.índice 

Salga del archivo de configuración y reinicie el servicio MySQL para que los cambios entren en vigencia en el nodo maestro.

$ sudo systemctl reiniciar mysql 

Para verificar que el servidor MySQL se esté ejecutando como se esperaba, emita el comando.

$ sudo systemctl status mysql 
Reiniciar y verificar el estado de MySQL

Perfecto! El servidor MySQL se está ejecutando como se esperaba!

Paso 2: Cree un nuevo usuario para la replicación en el nodo maestro

En esta sección, vamos a crear un usuario de replicación en el nodo maestro. Para lograr esto, inicie sesión en el servidor MySQL como se muestra.

$ sudo mysql -u root -p 

A continuación, continúe y ejecute las consultas a continuación para crear un usuario de réplica y otorgar acceso al esclavo de replicación. Recuerde usar su dirección IP.

mysql> Crear usuario 'replication_user'@'10.128.0.29'Identificado por' réplica_password '; mysql> Grante esclavo de replicación en *.* A 'replication_user'@'10.128.0.29'; 
Crear usuario de replicación mySQL

A continuación, ejecute el siguiente comando.

mysql> Mostrar estado maestro \ g 

La salida debe ser similar a lo que puede ver a continuación.

Consulte el estado maestro de MySQL

Estar interesado y anotar el mysql-bin.000002 valor y la identificación de posición 1643. Estos valores serán cruciales al configurar el servidor de esclavos.

Paso 3: Configure el servidor de esclavos MySQL

Salir al servidor de esclavos y como lo hicimos con el Servidor maestro, Abra el archivo de configuración de MySQL.

$ sudo vim/etc/mysql/mysql.confusión.d/mysqld.CNF 

Al igual que el servidor maestro, Proceda a editar las siguientes líneas.

enlace de enlace = 10.128.0.29 
Atar la dirección IP de MySQL en esclavo

Como antes, especifique un valor para el ID de servidor atributo en el [mysqld] sección. Este tiempo seleccione un valor diferente. Vamos con 2.

servidor-id = 2 
Establezca la identificación del servidor MySQL en esclavo

Nuevamente, pegue las líneas a continuación al final del archivo de configuración.

log_bin =/var/log/mysql/mysql-bin.log log_bin_index =/var/log/mysql/mysql-bin.registro.índice relay_log =/var/log/mysql/mysql-relay-bin relay_log_index =/var/log/mysql/mysql-relay-bin.índice 

Siguiente reiniciar el servidor MySQL en el nodo esclavo.

$ sudo systemctl reiniciar mysql 

Una vez hecho, guarde y salga del editor de texto

A continuación, inicie sesión en el shell mysql como se muestra.

$ sudo mysql -u root -p 

En este paso, deberá hacer una configuración que permita el servidor de esclavos para conectarse al servidor maestro. Pero primero, detén los hilos de esclavos como se muestra.

mysql> Detener esclavo; 

Para permitir el servidor de esclavos Para replicar el Servidor maestro, Ejecutar el comando.

mysql> Cambiar maestro a maestro_host = '10.128.0.28 ', maestro_user =' replication_user ', maestro_password =' ​​[Correo electrónico protegido] ', maestro_log_file =' mysql-bin.000002 ', maestro_log_pos = 1643; 
Permitir la replicación de MySQL en Slave Server

Si está lo suficientemente interesado, observará que hemos usado el mysql-bin.00002 ID de valor y posición 1643 Se muestra antes después de crear el usuario de replicación de esclavos.

Además, se han utilizado la dirección IP del servidor maestro, el usuario de replicación y la contraseña.

Más tarde, comience el hilo que había detenido anteriormente.

mysql> Comienza esclava; 

Paso 4: Verifique la replicación MySQL Master-Slave

Para verificar si la configuración está funcionando como se esperaba, vamos a crear una nueva base de datos en el maestro y verificar para ver si se ha replicado en el servidor de esclavos MySQL.

Inicie sesión en MySQL en el Servidor maestro.

$ sudo mysql -u root -p 

Creemos una base de datos de prueba. En este caso, crearemos una base de datos llamada replication_db.

mysql> Crear una base de datos replication_db; 

Ahora, inicie sesión en su instancia de MySQL en el servidor de esclavos.

$ sudo mysql -u root -p 

Ahora enumere las bases de datos utilizando la consulta.

mysql> Mostrar bases de datos; 
Verificar la replicación MySQL Master-Slave

Notará la base de datos que creó en el maestro ha sido replicado en esclavo. Impresionante ! Su replicación MySQL Master-Slave funciona como se esperaba! Ahora puede estar seguro de que en caso de falla, las copias de los archivos de la base de datos se replicarán al servidor de esclavos.

Conclusión

En esta guía, aprendiste a configurar un Mysql maestro-esclavo configuración de replicación en Ubuntu 18.04.