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

Los repositorios RHEL no incluyen paquetes MySQL. Por lo tanto, vamos a instalar MySQL desde su repositorio oficial de Yum. Por lo tanto, vamos a instalar MySQL en ambos servidores usando el siguiente comando yum.

$ sudo yum localinstall https://dev.mysql.com/get/mysql57-community-rlease-el7-11.noarch.rpm

A continuación, ejecute el siguiente comando para instalar el servidor MySQL en RHEL 8 Linux.

$ sudo yum install mysql-community-server

Paso 2: Proteger MySQL en el servidor maestro y esclavo

Después de la instalación, 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.

$ sudo systemctl enable mysqld
$ sudo systemctl start mysqld

Debe tener en cuenta que cada vez que se inicia un servidor MySQL por primera vez en cualquier máquina, le proporciona al usuario root una contraseña temporal. Por lo tanto, para encontrar la contraseña inicial, escriba lo siguiente.

$ sudo grep 'temporary password' /var/log/mysqld.log

A continuación, debe fortalecer o proteger el servidor de base de datos MySQL ejecutando el siguiente script.

$ sudo mysql_secure_installation

Ingrese la contraseña de root de MySQL que acaba de desenterrar en el paso anterior y presione ENTER. Entonces se le preguntará si desea cambiar la contraseña predeterminada. Para mayor comodidad, le recomendamos que establezca una contraseña segura que pueda recordar en el futuro.

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: Configurar el 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 réplica y, al mismo tiempo, otorgue 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: Configurar el 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
<./pre>
First, stop the replication threads.
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 utilizar 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 hilos 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 MySQL Master Slave Replication 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 réplica de un maestro MySQL a un esclavo en un RHEL 8 Linux.