La replicación de MySQL es un proceso de copia de datos de un servidor de base de datos (master) a uno o más servidores (esclavos).
MySQL soporta varias topologías de replicación Maestro/Esclavo topología de ser uno de los más conocidos topologías en las que un servidor de base de datos actúa como maestro, mientras que uno o más servidores actúan como esclavos. De forma predeterminada, la replicación asincrónica, donde el maestro envía los eventos que describen las modificaciones de base de datos para su registro binario y los esclavos solicitud de los eventos cuando están listos.
En esta guía, vamos a mostrar cómo configurar MariaDB replicación Master/Slave con un maestro y un esclavo servidor en Debian 10. MariaDB es la implementación por defecto de MySQL en Debian. Se aplican los mismos pasos para Oracle MySQL.
Este tipo de topología de replicación es el más adecuado para la implementación de las réplicas de lectura para leer la escala, bases de datos de copia de seguridad para recuperación de desastres, y para análisis de puestos de trabajo.
Tabla de contenidos
Requisitos previos
Estamos asumiendo que usted tiene dos servidores con Debian 10, comunicarse unos con otros a través de una red privada. Si su proveedor de hosting no admite direcciones IP privadas, puede utilizar las direcciones IP públicas y configurar su firewall para permitir el tráfico en el puerto 3306 sólo de fuentes de confianza.
Los servidores que se utilizan en este ejemplo tiene las siguientes direcciones IP:
Master IP: 10.10.8.12
Slave IP: 10.10.8.164
La Instalación De MariaDB
El defecto de Debian 10 repositorios incluye MariaDB versión 10.3. Lo mejor es instalar el mismo MariaDB versión en ambos servidores para evitar posibles problemas.
Instalar MariaDB en tanto el maestro y el esclavo por medio de los siguientes comandos:
sudo apt-get update
sudo apt-get install mariadb-server
Configurar el Servidor Maestro
El primer paso es configurar el servidor maestro. Vamos a hacer los siguientes cambios:
Abra el MariaDB archivo de configuración y elimine o establecer las siguientes líneas:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
master:/etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 10.10.8.12
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
Una vez hecho esto, guarde el archivo y reinicie el servicio de MySQL para que los cambios tengan efecto:
sudo systemctl restart mariadb
El siguiente paso es crear un nuevo usuario de replicación. Inicie sesión en el MariaDB servidor como usuario root:
sudo mysql
Ejecute las siguientes consultas SQL para crear un usuario llamado réplica
y conceder el ESCLAVO de REPLICACIÓN
privilegio para el usuario:
CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164';
Asegúrese de cambiar la IP con su esclavo dirección IP. Usted puede poner el nombre del usuario como desee.
Mientras que todavía en el interior de los comandos de MySQL, ejecute el siguiente comando que se va a imprimir el binario de nombre de archivo y la posición.
SHOW MASTER STATUS\G
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 328
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.001 sec)
Tome nota del nombre de archivo, ‘mysql-bin.000001’ y la Posición ‘328’. Estos valores son necesarios a la hora de configurar el servidor esclavo y probablemente será diferente en el servidor.
Configurar el Servidor Esclavo
Vamos a hacer los mismos cambios en el servidor esclavo como aquellos en el maestro:
- Configurar el servidor de MySQL para escuchar en la IP privada.
- Establecer un único ID de servidor.
- Habilitar el log binario.
Abra el MariaDB archivo de configuración y modificar las siguientes líneas:
sudo nano /etc/mysql/mariadb.conf.d/50-servidor.cnf
bind-address = 10.10.8.164
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
Reinicie el MariaDB servicio:
sudo systemctl restart mariadb
El siguiente paso es configurar los parámetros que el servidor esclavo se utiliza para conectar con el servidor maestro. Inicio de sesión para el MariaDB shell:
sudo mysql
Empezar por detener el esclavo de hilos:
STOP SLAVE;
Ejecute la consulta siguiente para configurar la replicación Master/Slave:
CAMBIO DE MAESTRO A
MASTER_HOST='10.10.8.12',
MASTER_USER='réplica',
MASTER_PASSWORD='replica_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=328;
Asegúrese de que está utilizando la dirección IP correcta, el nombre de usuario y contraseña. El nombre de archivo de registro y la posición debe ser la misma que la de los valores obtenidos desde el servidor principal.
Una vez hecho esto, inicia el esclavo hilos.
START SLAVE;
Prueba de la Configuración
En este punto, usted debe tener un trabajo de Maestro/Esclavo de replicación de la configuración.
Para comprobar que todo está configurado correctamente, crear una nueva base de datos en el servidor maestro:
sudo mysql
CREATE DATABASE replicatest;
Inicio de sesión para el esclavo MySQL shell:
sudo mysql
Ejecute el siguiente comando para [lista de todas las bases de datos(https://linuxize.com/post/how-to-show-databases-in-mysql/)]:
SHOW DATABASES;
Usted notará que la base de datos creada en el servidor maestro se replica en el esclavo:
+--------------------+
Base de datos | |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| replicatest |
| sys |
+--------------------+
5 filas en set (0.00 sec)
Conclusión
En este tutorial, hemos demostrado que crear un MariaDB Maestro/Esclavo de replicación en Debian 10.
Siéntase libre de dejar un comentario si usted tiene alguna pregunta.