GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Replicación de MySQL 8 maestro-esclavo en Ubuntu 20.04

A veces, es posible que necesitemos replicar datos de un servidor de base de datos MySQL a uno o más servidores de base de datos MySQL automáticamente. Básicamente, los administradores de la base de datos realizan tareas relacionadas con la base de datos, como la replicación, la agrupación en clústeres y la conmutación por error automática. Administrar servidores de bases de datos MySQL y realizar tareas de replicación son responsabilidades de los expertos en bases de datos. En este artículo, aprenderemos cómo configurar la replicación de la base de datos MySQL maestro-esclavo en Ubuntu 20.04. En este artículo, usaremos MySQL 8 para la replicación.

Requisitos

  • Dos servidores ubuntu
  • Cuenta de usuario root con privilegios
  • Conexión a Internet para descargar paquetes

En este ejemplo, se utilizan los siguientes servidores.

  • Maestro:192.168.178.135
  • Esclavo:192.168.178.137

Instalar servidor MySQL 8 en ambos nodos

La instalación de MySQL es un proceso simple y directo. En el sistema Ubuntu, MySQL se puede instalar usando el repositorio de paquetes APT. Antes de la instalación, actualice el índice de paquetes de Ubuntu con el siguiente comando.

$apt update

Instale el paquete del servidor MySQL usando el siguiente comando.

$apt install mysql-server -y

La instalación nueva del servidor MySQL lo deja sin seguridad. Ejecute el script “mysql_secure_installation ” para cambiar algunas de las opciones predeterminadas menos seguras, como inicios de sesión raíz remotos, base de datos de prueba, usuarios de muestra, etc.

$ mysql_secure_installation

Inicie y habilite el servicio MySQL

$ systemctl start mysql
$ systemctl enable mysql

Configurar el servidor maestro de la base de datos

Ahora necesitamos hacer algunos cambios en el servidor maestro para la replicación. Edite el mysqld.conf archivo en el directorio /etc/mysql/mysql.conf.d y agregue las siguientes líneas. Recuerde agregar las variables de configuración debajo de [mysqld] sección.

$ vi /etc/mysql/mysql.conf.d/mysqld.conf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
server-id = 1
log-bin = /var/log/mysql/mysql-bin.log
tmpdir = /tmp
binlog_format = ROW
max_binlog_size = 800M
sync_binlog = 1
expire-logs-days = 5
slow_query_log=1
slow_query_log_file=/var/lib/mysql/mysqld-slow.log

donde:

  • server-id:ID único del servidor MySQL. Este ID no se puede reutilizar en ningún nodo del clúster.
  • log-bin:este es el archivo en el que se almacena toda la información de replicación.
  • max_binlog_size:tamaño del archivo binlog.

Además, comente la dirección de enlace como:

#bind-address =127.0.0.1

Reinicie el servicio mysql

$systemctl restart mysql

Cree un nuevo usuario para el servicio de replicación en el nodo principal

Ahora necesitamos crear un usuario de base de datos en un nodo maestro que será utilizado por los esclavos cuando se conecten. Inicie sesión en la base de datos con el usuario raíz y cree el usuario.

$ mysql -u root -p
$ mysql> CREATE USER [email protected] IDENTIFIED BY '[email protected]';

Nota:Especificar la dirección IP al crear el usuario aceptará conexiones MySQL solo desde el host especificado. Se rechazarán las conexiones de otros hosts. En este ejemplo, he usado la dirección IP de mi servidor esclavo MySQL. Es posible que deba cambiar esta dirección IP a su entorno en consecuencia.

El usuario necesita privilegios de ESCLAVO DE REPLICACIÓN para poder replicar los datos de MySQL. Use la siguiente consulta para otorgar los privilegios.

mysql> GRANT REPLICATION SLAVE on *.* to [email protected] ;

Verifique los privilegios otorgados mediante la siguiente consulta.

mysql> SHOW GRANTS FOR [email protected];

Configurar el nodo DB esclavo

Ya hemos instalado el servidor MySQL en el paso anterior. Ahora cambiaremos algunos archivos de configuración para habilitar el proceso de replicación. Edite el mysqld.conf archivo bajo /etc/mysql/mysql.conf.d directorio y agregue los siguientes contenidos.

$vi /etc/mysql/mysql.conf.d/mysqld.conf

Contenido del archivo de configuración:

[mysqld]
log_bin = /var/log/mysql/mysql-bin.log
server-id = 2
read_only = 1
tmpdir = /tmp
binlog_format = ROW
max_binlog_size = 800M
sync_binlog = 1
expire-logs-days = 5
slow_query_log = 2

donde,

  • id-servidor – ID de servidor MySQL único.
  • solo lectura – El nodo esclavo está configurado en modo de solo lectura
  • registro_bin – Habilita el registro binario en el nodo esclavo
  • slow_query_log – Habilita el registro de consultas lentas

Además, comente la línea de dirección de enlace.

# bind-address = 127.0.0.1

Ahora reinicie el servicio MySQL

$ systemctl restart mysql

Conectar el servidor esclavo al servidor maestro

Antes de configurar el servidor esclavo, vaya al servidor maestro y verifique el estado.

$ mysql -u root -p
mysql> SHOW MASTER STATUS\G

Tome nota de las siguientes banderas que usaremos en el servidor esclavo.

  • Archivo:mysql-bin.000002
  • Posición:156

Ahora configure los parámetros en el servidor esclavo que se usarán para conectar el servidor maestro. Siga los pasos a continuación.

  • Inicie sesión en el servidor MySQL usando credenciales de root
$ mysql -u root -p
  • Detener subprocesos esclavos
mysql> STOP SLAVE;
  • Configure el servidor esclavo para replicar el servidor maestro
mysql> CHANGE MASTER TO MASTER_HOST='192.168.178.137', MASTER_USER='replication_user', MASTER_PASSWORD='[email protected]', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=1050;

donde,

  • 192.168.178.137 – Dirección IP del servidor maestro
  • usuario_de_replicación – Usuario de MySQL del servidor maestro
  • contraseña – Contraseña de usuario de replicación
  • mysql-bin.000002 – Archivo de registro del servidor maestro
  • 156 – Posición de registro del servidor maestro

Ahora activa el servidor esclavo.

mysql> START SLAVE;

Verifique el estado del esclavo utilizando la siguiente consulta

mysql> SHOW SLAVE STATUS\G

Tenga en cuenta el estado de la siguiente bandera.

  • Slave_IO_Running:Conectando
  • Slave_IO_Running:Conectando

Verificar replicación maestro-esclavo

El maestro y el esclavo están configurados para replicar. Podemos verificar si la replicación maestro-esclavo está funcionando o no. En el servidor maestro, inicie sesión en MySQL shell y cree una base de datos de prueba.

$ mysql -u root -p
mysql> CREATE DATABASE example_db;

Verifique la base de datos creada.

mysql> SHOW DATABASES;

Ahora inicia sesión en el servidor esclavo

$ mysql -u root -p

Ejecute la siguiente consulta para enumerar las bases de datos.

mysql> SHOW DATABASES;

Puede ver que la base de datos creada en el servidor maestro se replica en el servidor esclavo.

Conclusión

En este artículo, aprendimos cómo configurar el nodo maestro y esclavo de MySQL en Ubuntu 20.04. También puede seguir este artículo para configurar la replicación de MySQL maestro-esclavo en Ubunutu 18.04.


Ubuntu
  1. Cómo instalar MySQL 8.0 en Ubuntu 18.04

  2. Cómo instalar MySQL en Ubuntu 20.04

  3. Instalación de Ubuntu 22.04 LAMP

  4. Cómo instalar MySQL en Ubuntu 18.04

  5. Cómo configurar la replicación maestro-esclavo de MySQL en Ubuntu 18.04

Cómo instalar el servidor MySQL en Ubuntu

Cómo instalar MySQL 8.0 en Ubuntu 18.04

Cómo instalar Lychee en Ubuntu 14.04

Instale MYSQL Workbench en Ubuntu 22.04

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

Cómo instalar MySQL en Ubuntu 22.04