La replicación de datos es el proceso de copiar sus datos en varios servidores para mejorar la disponibilidad de los datos y mejorar la confiabilidad y el rendimiento de una aplicación. En MySQL replicación, los datos se copian desde una base de datos desde el servidor maestro a otros nodos en tiempo real para garantizar la coherencia de los datos y también para proporcionar copias de seguridad y redundancia.
En esta guía, demostramos cómo puede configurar MySQL (Maestro-Esclavo ) replicación en distribuciones basadas en RHEL como CentOS , Fedora , Rocky Linux, y AlmaLinux .
Configuración de replicación de MySQL
Entonces, aquí está nuestro MySQL configuración del laboratorio de replicación.
MySQL Master - 10.128.0.14 MySQL Slave - 10.128.15.211
Empecemos...
Paso 1:Instale MySQL en el servidor maestro y esclavo
Comenzaremos instalando MySQL base de datos tanto en el maestro y esclavo servidores.
$ sudo dnf install @mysql


Una vez completada la instalación, haga un punto para iniciar el servidor de la base de datos.
$ sudo systemctl start mysqld
Luego habilítelo para iniciar el inicio del sistema o al reiniciar.
$ sudo systemctl enable mysqld
A partir de entonces, confirme que MySQL el servidor de la base de datos se está ejecutando como se muestra:
$ sudo systemctl status mysqld


Paso 2:Proteger MySQL en el servidor maestro y esclavo
El siguiente paso es asegurar el MySQL base de datos tanto en el maestro y esclavo servidores. Esto se debe a que la configuración predeterminada no es segura y presenta algunas lagunas que los piratas informáticos pueden explotar fácilmente.
Entonces, para fortalecer MySQL, ejecute el comando:
$ sudo mysql_secure_installation
Primero, se le pedirá que configure el MySQL contraseña raíz. Asegúrese de proporcionar una contraseña raíz segura, preferiblemente con más de 8 caracteres que sean una combinación de mayúsculas, minúsculas, caracteres especiales y numéricos.


Para las indicaciones restantes, escriba 'Y'
para ajustar el servidor de la base de datos a la configuración recomendada.


Una vez que haya terminado de instalar y reforzar MySQL en el nodo maestro y esclavo, lo siguiente es configurar el nodo maestro.
Paso 3:configurar el nodo maestro (servidor)
El siguiente paso es configurar el Maestro nodo y conceder al esclavo nodo de acceso a él. Primero, necesitamos editar el mysql-server.cnf archivo de configuración.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Agregue las siguientes líneas debajo de [mysqld]
sección.
bind-address = 10.128.0.14 server-id = 1 log_bin = mysql-bin
Una vez hecho esto, guarde los cambios y salga. Luego reinicie el MySQL servidor.
$ sudo sysemctl restart mysqld
A continuación, inicie sesión en MySQL concha.
$ sudo mysql -u root -p
Ejecute los siguientes comandos para crear un usuario de base de datos que se usará para vincular el maestro y el esclavo para la replicación.
mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFIED BY '[email protected]'; mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'10.128.15.211';


Aplicar los cambios y salir de MySQL servidor.
mysql> FLUSH PRIVILEGES; mysql> EXIT;
Verifique el estado del maestro.
mysql> SHOW MASTER STATUS\G


Tome nota del nombre de archivo y la posición. Lo necesitará más adelante cuando configure el esclavo para la replicación. En nuestro caso, tenemos el nombre de archivo como mysql-bin.000001
y Posición 1232 .
Paso 4:configurar el nodo esclavo (servidor)
Ahora, regresa al nodo Esclavo. Una vez más, edite el mysql-server.cnf archivo de configuración.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Como antes, pegue estas líneas debajo de [mysqld]
sección. Cambie la dirección IP para que corresponda con la IP del esclavo. Además, asigne un id de servidor diferente . Aquí le hemos asignado el valor de 2 .
bind-address = 10.128.15.211 server-id = 2 log_bin = mysql-bin
Guarde los cambios y salga del archivo. Luego reinicie el servidor de la base de datos.
$ sudo systemctl restart mysqld
Para configurar el Esclavo nodo para replicar desde el nodo maestro, inicie sesión en el servidor MySQL del esclavo.
$ sudo mysql -u root -p
En primer lugar, detenga los subprocesos de replicación:
mysql> STOP SLAVE;


Luego ejecute el siguiente comando para configurar el nodo esclavo para replicar bases de datos desde el maestro.
mysql> CHANGE MASTER TO MASTER_HOST='10.128.0.14' , MASTER_USER='replica' , MASTER_PASSWORD='[email protected]' , MASTER_LOG_FILE='mysql-bin.000001' , MASTER_LOG_POS=1232;
Tenga en cuenta que el MASTER_LOG_FILE y MASTER_LOG_POS las banderas corresponden al archivo y Posición valores del maestro nodo al final del Paso 1.
El MASTER_HOST , USUARIO_MAESTRO, y MASTER_PASSWORD corresponden a la dirección IP maestra, el usuario de replicación y la contraseña del usuario de replicación, respectivamente.


Luego inicie los subprocesos de replicación esclavos:
mysql> START SLAVE;


Paso 4:Probar la replicación maestro-esclavo de MySQL
Ahora, para probar si la replicación entre el nodo maestro y el esclavo está funcionando, inicie sesión en el servidor de base de datos MySQL en el nodo maestro:
$ sudo mysql -u root -p
Crear una base de datos de prueba. Aquí, nuestra base de datos de prueba se llama replication_db .
mysql> CREATE DATABASE replication_db;
Verify the existence of the database.
mysql> SHOW DATABASES;


Ahora, diríjase al nodo esclavo, inicie sesión en el servidor MySQL y confirme que replication_db la base de datos está presente. A partir del resultado a continuación, podemos ver que la base de datos está presente. Esta es la confirmación de que la replicación ha tenido lugar desde el nodo maestro al esclavo.
mysql> SHOW DATABASES;


Y eso es todo, hemos demostrado con éxito cómo puede configurar un MySQL modelo de replicación maestro-esclavo que puede replicar bases de datos desde el nodo maestro al nodo esclavo.