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

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

La replicación maestro-esclavo de MySQL. es un procedimiento que permite replicar o copiar archivos de base de datos en uno o más nodos de una red. Esta configuración proporciona redundancia y tolerancia a fallas, de modo que, en caso de falla en el nodo maestro. las bases de datos aún se pueden recuperar en el nodo esclavo. Esto les da a los usuarios la tranquilidad de que no todo se perderá en cualquier 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á cómo realizar una Replicación maestro-esclavo. de la base de datos MySQL. en un sistema Ubuntu 18.04.

Requisitos previos

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

Servidor maestro: 10.128.0.28. Servidor esclavo: 10.128.0.29.

Ahora profundicemos y veamos cómo podemos configurar la configuración de replicación maestro-esclavo. en Ubuntu.

Paso 1: Instale MySQL en maestro y esclavo Nodos

Los repositorios de Ubuntu. contienen la versión 5.7. de MySQL. Para aprovechar las nuevas funciones y evitar posibles problemas, debe instalar la última versión de MySQL. Pero primero, actualice los dos nodos usando el siguiente comando apt.

$ sudo apt update  Actualizar el software de Ubuntu  Actualizar software de Ubuntu Actualizar el software de Ubuntu freestar.config.enabled_slots.push (LocationName:” tecmint_incontent “, slotId:” tecmint_incontent “);

Para 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 archivo de configuración mysql.

$ sudo vim/etc/mysql/mysql.conf.d/mysqld.cnf

En el nodo maestro. desplácese y ubique el atributo bind-address como se muestra a continuación.

bind-address = 127.0.0.1

Cambie la dirección de loopback para que coincida con la dirección IP del nodo maestro.

bind-address = 10.128.0.28  Establecer la dirección IP maestra de MySQL  Establecer la dirección IP maestra de MySQL Establecer la dirección IP maestra de MySQL

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

server-id = 1 Establecer el ID del servidor MySQL en el maestro  Establecer el ID del servidor MySQL en el maestro Establecer ID del servidor MySQL en el maestro

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

log_bin =/var/log/mysql/mysql-bin.log log_bin_index =/var/log/mysql/mysql-bin.log.index relay_log =/var/log/mysql/mysql-relay-bin relay_log_index =/var/log/mysql/mysql-relay-bin.index

Salga del archivo de configuración y reinicie el servicio MySQL para los cambios entrarán en vigor en el nodo maestro.

$ sudo systemctl restart mysql

Para verificar que el servidor MySQL i s ejecutándose como se esperaba, emita el comando.

$ sudo systemctl status mysql  Reiniciar y verificar el estado de MySQL  Reiniciar y verificar el estado de MySQL Reiniciar y comprobar 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 nodo principal. Para lograr esto, inicie sesión en el servidor MySQL como se muestra.

$ sudo mysql-u root-p

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

mysql>. CREAR USUARIO ‘replication_user’ @ ‘ 10.128.0.29. IDENTIFICADO POR ‘replica_password’; mysql>. GRANT REPLICATION SLAVE ON *. * TO ‘replication_user’ @ ‘ 10.128.0.29. ;  Crear usuario de replicación MySQL  Crear usuario de replicación MySQL Crear usuario de replicación MySQL

A continuación, ejecute el siguiente comando.

mysql>. MOSTRAR ESTADO MAESTRO \ G

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

Verificar el estado de MySQL Master  Verificar el estado de MySQL Master Comprobar el estado del maestro MySQL

Esté atento y observe el valor de mysql-bin.000002 y el ID de posición 1643. Estos valores serán cruciales al configurar el servidor esclavo.

Paso 3: Configurar el servidor esclavo de MySQL

Dirígete al servidor esclavo y, como hicimos con el servidor maestro. abre MySQL archivo de configuración.

$ sudo vim/etc/mysql/mysql.conf.d/mysqld.cnf

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

bind-address = 10.128.0.29  Vincular la dirección IP de MySQL en el esclavo  Vincular la dirección IP de MySQL en esclavo Vincular la dirección IP de MySQL al esclavo

Como antes, especifique un valor para el atributo server-id en la sección [mysqld]. Esta vez seleccione un valor diferente. Vamos con 2.

server-id = 2  Establecer la ID del servidor MySQL en esclavo  Establecer ID de servidor MySQL en esclavo Establecer el ID del servidor MySQL en esclavo

De nuevo, pegue las líneas siguientes al final del archivo de configuración.

log_bin =/var/log/mysql/mysql-bin.log log_bin_index =/var/log/mysql/mysql-bin.log.index relay_log =/var/log/mysql/mysql-relay-bin relay_log_index =/var/log/mysql/mysql-relay-bin.index

A continuación, reinicie el servidor MySQL en nodo esclavo.

$ sudo systemctl restart mysql

Una vez hecho esto, guarde y salga del editor de texto

A continuación, inicie sesión en el shell de MySQL como

$ sudo mysql-u root-p

En este paso, necesitará realizar alguna configuración que permitirá que el servidor esclavo. se conecte al servidor maestro. Pero primero, detenga los subprocesos esclavos como se muestra.

mysql>. STOP SLAVE;

Para permitir que el servidor esclavo. replique el servidor maestro. ejecute el comando.

mysql>. CHANGE MASTER TO MASTER_HOST = ’10 .128.0.28 ‘, MASTER_USER =’ replication_user ‘, MASTER_PASSWORD =’ [correo electrónico protegido] ‘, MASTER_LOG_FILE =’ mysql-bin.000002 ‘, MASTER_LOG_POS = 1643;  Permitir la replicación de MySQL en el servidor esclavo  Permitir la replicación de MySQL en el servidor esclavo Permitir la replicación de MySQL en el servidor esclavo

Si está lo suficientemente interesado, observará que hemos usado mysql-bin.00002 El valor y la ID de posición 1643 mostrados anteriormente después de crear el usuario de replicación esclavo.

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

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

mysql>. START SLAVE;

Paso 4: Verifique la replicación maestro-esclavo de MySQL

Para verificar si la configuración realmente funciona como se esperaba, crearemos una nueva base de datos en el maestro y verificaremos si ha sido replicado en el servidor esclavo 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>. CREATE DATABASE replication_db;

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

$ sudo mysql-u root-p

Ahora enumere las bases de datos usando la consulta.