GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar la replicación de MySQL en RHEL/Centos

En este artículo, demostraré cómo configurar la replicación de MySQL entre servidores de bases de datos Maestro y Esclavo. Esto utilizará dos servidores, uno de los cuales replicará los datos del otro (maestro a esclavo). Utilice esta configuración si desea mejorar la confiabilidad y el rendimiento de la configuración de sus sistemas.

Consulte uno de nuestros otros tutoriales si necesita ayuda para configurar un sistema basado en RHEL.

Para esta guía, usaremos esta configuración de laboratorio de replicación de MySQL.

MySQL Master - 192.168.56.1
MySQL Slave  - 192.168.56.2 

Paso 1:Instale MySQL en el servidor maestro y esclavo

Comience instalando la base de datos MySQL en los servidores maestro y esclavo.

$ sudo dnf install @mysql

or

$ sudo yum install mysql-server

Una vez completada la instalación, inicie el servicio de la base de datos.

$ sudo systemctl start mysqld

Luego habilítelo para que comience con systemctl. Habilitarlo le indicará al servicio que se inicie en la secuencia de inicio.

$ sudo systemctl enable mysqld

Luego confirme que el servidor de la base de datos MySQL se está ejecutando:

$ sudo systemctl status mysqld

Paso 2:Proteger MySQL en el servidor maestro y esclavo

Se recomienda asegurar su nuevo servidor de base de datos con el siguiente comando:

$ sudo mysql_secure_installation

Para comenzar, deberá configurar la contraseña de root de MySQL. Asegúrese de utilizar una contraseña raíz segura, preferiblemente una que contenga una combinación de caracteres en mayúsculas, minúsculas, especiales y numéricos y que tenga más de 8 caracteres.

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

Una vez que haya terminado de instalar y fortalecer MySQL en el nodo maestro y esclavo, el siguiente paso es configurar el nodo maestro.

Paso 3:configurar el nodo maestro (servidor)

Ahora configuramos el nodo maestro y otorgamos acceso al nodo esclavo. Primero, necesitamos editar el archivo de configuración mysql-server.cnf.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Agregue las siguientes líneas debajo de la sección [mysqld].

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

Una vez hecho esto, guarde los cambios y salga. Luego reinicie el servidor MySQL.

$ sudo sysemctl restart mysqld

A continuación, inicie sesión en MySQL shell.

$ 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'@'192.168.56.2' IDENTIFIED BY 'Password';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'192.168.56.2';

Aplique los cambios y salga del servidor MySQL.

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 binlog.000001 y Posición 854.

Paso 4:configurar el nodo esclavo (servidor)

Ahora, regresa al nodo Esclavo. Una vez más, edite el archivo de configuración mysql-server.cnf.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Como antes, pegue estas líneas debajo de la sección [mysqld]. Cambie la dirección IP para que corresponda con la IP del esclavo. Además, asigne una ID de servidor diferente. Aquí le hemos asignado el valor de 2.

bind-address	 = 192.168.56.2
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 nodo Esclavo para replicar desde el nodo Maestro, inicie sesión en el servidor MySQL del Esclavo.

$ sudo mysql -u root -p

Comience deteniendo 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='192.168.56.1' ,
     MASTER_USER='replica' ,
     MASTER_PASSWORD='Password' ,
     MASTER_LOG_FILE='binlog.000001' ,
     MASTER_LOG_POS=854;

Los indicadores MASTER LOG FILE y MASTER LOG POS coinciden con los valores de archivo y posición del nodo maestro al final del paso 1.

MASTER HOST, MASTER USER y MASTER PASSWORD son la dirección IP maestra, el usuario de replicación y la contraseña, respectivamente.

A continuación, se deben iniciar 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;

Verificar la existencia de la base de datos.

mysql> SHOW DATABASES;

Ahora vaya al nodo esclavo, inicie sesión en el servidor MySQL y vuelva a verificar que exista la base de datos de replicación. Podemos ver que la base de datos está presente en la salida a continuación. Esto indica que se ha producido la replicación del nodo maestro al esclavo.

mysql> SHOW DATABASES;

Cent OS
  1. ¿Cómo configurar MySQL Master-Slave usando nodos CentOS 7?

  2. Cómo configurar el servidor SysLog en CentOS 7 / RHEL 7

  3. Cómo configurar el servidor NFS en CentOS 7 / RHEL 7

  4. Cómo configurar mutt en CentOS/RHEL

  5. Cómo configurar un servidor proxy squid en CentOS/RHEL 7

Cómo configurar Icinga Web 2 en CentOS 8 / RHEL 8

Cómo instalar cactus en CentOS 6 / RHEL 6

Cómo configurar un Chef 12 en CentOS 7 / RHEL 7

Cómo instalar MySQL 8.0 en CentOS 8 / RHEL 8

Cómo configurar el servidor SysLog centralizado en CentOS 8 / RHEL 8

¿Cómo configurar la replicación maestro-esclavo de MySQL en RHEL 7?