En el proceso de replicación de MySQL, los datos de un servidor se copian automáticamente a otro servidor de respaldo en tiempo real. La replicación de la base de datos proporciona tolerancia a fallas y redundancia. Si el maestro falla, sus datos se recuperarán de otro servidor.
Los siguientes son los pasos para configurar la replicación maestro-esclavo de MySQL en RHEL 7. Para hacer esto, necesitamos 2 servidores con diferentes direcciones IP.
- Descargue e instale el servidor MySQL en ambos servidores usando el comando Yum.
# wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
# sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm # sudo yum install mysql-server - Una vez que el servidor MySQL esté instalado, inícielo y habilítelo para iniciar en el arranque.
sudo systemctl enable mysqld
sudo systemctl start mysqld - Averigüe la contraseña temporal del servidor mysql usando el siguiente comando.
# sudo grep 'temporary password' /var/log/mysqld.log
- Ejecute el siguiente comando para fortalecer o asegurar la base de datos MySQL.
# sudo mysql_secure_installation
- Ingrese la contraseña temporal que acabamos de obtener en el paso (3) y cambie la contraseña predeterminada.
- Para brindar la mejor seguridad, presione y para todas las respuestas.
Paso 1:configurar el servidor maestro
- Abra el archivo de configuración de MySQL usando su editor favorito.
# sudo vim /etc/my.cnf
- Agregue la siguiente línea en la sección mysqld.
# bind-address = Your Master server IP Address
server-id = 1
log_bin =mysql-bin - Reiniciar el servicio mysql.
# sudo systemctl restart mysqld
- Para crear un usuario de replicación, inicie sesión en el servidor mysql usando root y proporcione la contraseña.
# sudo mysql -u root -p
- Crearemos la réplica del usuario con el siguiente comando y otorgaremos acceso esclavo al usuario. Asegúrese de utilizar la dirección IP de su servidor.
mysql> CREATE USER 'replica'@'173.248.174.102' IDENTIFIED BY '[email protected]';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.248.174.102'; - Presione el siguiente comando para obtener el nombre del archivo binario y la posición.
mysql> SHOW MASTER STATUS\G
- Tendremos que anotar el nombre del archivo maestro mysql-bin.000034 y su posición 154.
Paso 2:configurar el servidor esclavo:
- Abra el archivo de configuración de MySQL usando su editor favorito.
sudo vim /etc/my.cnf
- Agregue la siguiente línea en la sección mysqld.
bind-address = Your Slave server IP Address
server-id = 2
log_bin =mysql-bin - Reiniciar el servicio mysql.
sudo systemctl restart mysqld
- Permítanos configurar el servidor esclavo para replicar desde el servidor maestro. Inicie sesión en el servidor MySQL.
sudo mysql -u root -p
mysql> STOP SLAVE; - Ejecutaremos la siguiente consulta para configurar el servidor esclavo para replicar el servidor maestro.
mysql> CHANGE MASTER TO
-> MASTER_HOST='173.248.174.101',
-> MASTER_USER='replica',
-> MASTER_PASSWORD='[email protected]',
-> MASTER_LOG_FILE='mysql-bin.000034',
-> MASTER_LOG_POS=154;
- Inicie el servidor esclavo.
mysql> START SLAVE;
Paso 3:probar la replicación maestro-esclavo de MySQL:
Hemos terminado con la configuración del servidor maestro y esclavo. Ahora, probaremos la replicación en ambos servidores.
- Vaya al servidor maestro y presione el siguiente comando.
sudo mysql -u root -p
- Cree una base de datos de prueba.
mysql> CREATE DATABASE replica_database;
- Vaya al servidor esclavo e inicie sesión en el servidor de base de datos MySQL.
sudo mysql -u root -p
- Enumere la base de datos usando el siguiente comando.
mysql> SHOW DATABASES;
Si toda la configuración es correcta, verá la base de datos creada en el maestro allí. Eso es todo. Nuestra replicación MySQL maestro/esclavo funciona bien.