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


La replicación de MySQL es un proceso en el que los datos de un servidor se copian o replican automáticamente en otro servidor de respaldo en tiempo real. La replicación proporciona redundancia y tolerancia a fallas y le da al usuario la tranquilidad de que incluso después de una falla en el servidor maestro, los datos aún se pueden recuperar.

En este tutorial, aprenderá a configurar y configurar una replicación maestro-esclavo de MySQL en un RHEL 8 Linux.

En la configuración, tendremos dos servidores ejecutando RHEL 8 con las siguientes direcciones IP.

Master = 173.82.120.14
Slave  = 173.82.115.165

Procedamos ahora y veamos cómo podemos configurar la configuración de replicación maestro-esclavo de MySQL en RHEL 8 Linux.

Paso 1: Instale MySQL en el servidor maestro y esclavo

1. La última versión de MySQL 8.x ya está incluida en el repositorio predeterminado de RHEL 8 y puede instalarla usando el siguiente comando yum.

# yum -y install @mysql

Paso 2: proteger MySQL en el servidor maestro y esclavo

Después de la instalación, ahora debe iniciar el servicio MySQL que acaba de instalar y hacer que se inicie automáticamente cada vez que inicie el servidor. Por lo tanto, use el siguiente comando.

# systemctl enable mysqld
# systemctl start mysqld

A continuación, debe proteger su instalación de MySQL ejecutando el script de seguridad que viene con varias operaciones basadas en la seguridad, como establecer la contraseña de root, eliminar usuarios anónimos, no permitir el inicio de sesión de root de forma remota, eliminar la base de datos de prueba y recargar privilegios.

# mysql_secure_installation

Continúe con el resto del mensaje y responda a todas las preguntas, así que configure el servidor con las mejores prácticas de seguridad.

Paso 3: Configuración del servidor maestro MySQL

Para comenzar con la configuración del servidor maestro, proceda y abra el archivo de configuración de MySQL escribiendo el siguiente comando.

$ sudo vim /etc/my.cnf

En la sección mysqld , agregue las líneas como se muestra a continuación.

bind-address =173.82.120.14
server-id = 1
log_bin =mysql-bin

Finalmente, reinicie el servicio MySQL.

$ sudo systemctl restart mysqld

Ahora vamos a crear un usuario de replicación. Por lo tanto, inicie sesión en su servidor maestro MySQL como usuario root y proporcione la contraseña.

$ sudo mysql -u root -p

Ahora ejecute los siguientes comandos para crear el usuario de réplica y, al mismo tiempo, otorgue el acceso esclavo al usuario. Recuerde utilizar la dirección IP de su máquina.

mysql> CREATE USER 'replica'@'173.82.115.165' IDENTIFIED BY 'strong_password';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.82.115.165';

Ahora, va a escribir el siguiente comando que imprimirá el nombre y la posición del archivo binario.

mysql> SHOW MASTER STATUS\G

Recuerde tomar nota del nombre de archivo resultante msql-bin.000002 y su posición 939 .

Paso 4: Configuración del servidor esclavo MySQL

Al igual que en el proceso de configuración del maestro, debe realizar los siguientes cambios en el archivo de configuración del esclavo mysql.

$ sudo vim  /etc/my.cnf

Agregue las siguientes líneas en el archivo de configuración en la sección mysqld .

bind-address =173.82.115.165
server-id = 2
log_bin =mysql-bin

Reinicie el servidor.

$ sudo systemctl restart mysqld

Ahora, el siguiente paso es configurar el servidor esclavo para que se replique desde el servidor maestro. Inicie sesión en el servidor MySQL.

$ sudo mysql -u root -p

Primero, detenga los subprocesos de replicación.

mysql> STOP SLAVE;

Ahora, ejecute la siguiente consulta que configurará el esclavo para que se replique desde el servidor maestro.

mysql> CHANGE MASTER TO
    -> MASTER_HOST='173.82.120.14' ,
    -> MASTER_USER='replica' ,
    -> MASTER_PASSWORD='[email protected]' ,
    -> MASTER_LOG_FILE='mysql-bin.000002' ,
    -> MASTER_LOG_POS=939;

Asegúrese de que está utilizando el nombre de usuario y la contraseña IP correctos. Además, use el nombre de archivo y la posición que obtuvo del servidor maestro.

Finalmente, escriba el siguiente comando para iniciar los subprocesos esclavos.

mysql> START SLAVE;

Paso 5: Probar la replicación maestro-esclavo de MySQL

En este punto, ha completado la configuración de los servidores maestro y esclavo. Ahora necesitamos verificar si la configuración está funcionando y si la replicación puede tener lugar.

Para hacer esto, diríjase al servidor maestro e inicie sesión en el servidor de base de datos MySQL.

$ sudo mysql -u root -p

Cree una base de datos de muestra.

mysql> CREATE DATABASE replication_database;

Ahora diríjase al servidor esclavo y, nuevamente, inicie sesión en el servidor de base de datos MySQL.

$ sudo mysql -u root -p

Ahora enumere todas las bases de datos usando el siguiente comando.

mysql> SHOW DATABASES;

Si ve la base de datos creada, entonces la configuración de la replicación maestro-esclavo de MySQL funciona.

La replicación es un proceso bastante simple que se puede realizar fácilmente. En esta guía, ha aprendido cómo puede crear una replicación de un maestro a esclavo MySQL en un RHEL 8 Linux.