sql >> Base de Datos >  >> RDS >> Mysql

Cómo configurar la replicación de MySQL en RHEL, Rocky y AlmaLinux

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.