sql >> Base de Datos >  >> NoSQL >> MongoDB

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

MySQL La replicación maestro-esclavo es un procedimiento que permite que los archivos de la base de datos se repliquen o copien en uno o más nodos de una red. Esta configuración proporciona redundancia y tolerancia a fallas de modo que, en caso de falla en el nodo maestro , las bases de datos aún se pueden recuperar en el nodo esclavo . Esto brinda a los usuarios la tranquilidad de que no se perderá todo en ninguna eventualidad, ya que aún se puede recuperar una réplica de las bases de datos desde un servidor diferente.

En esta guía, aprenderá cómo realizar un MySQL base de datos Maestro-esclavo replicación en un Ubuntu 18.04 sistema.

Requisitos

En la configuración, vamos a tener dos servidores ejecutando Ubuntu 18.04 con las siguientes direcciones IP.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Ahora profundicemos y veamos cómo podemos configurar el maestro-esclavo configuración de replicación en Ubuntu .

Paso 1:Instale MySQL en los nodos maestro y esclavo

Ubuntu los repositorios contienen la versión 5.7 de MySQL . Para aprovechar las funciones nuevas y evitar posibles problemas, debe instalar la última versión de MySQL. Pero primero, actualicemos los dos nodos usando el siguiente comando apt.

$ sudo apt update

Para instalar MySQL en ambos nodos, ejecute el comando.

$ sudo apt install mysql-server mysql-client

A continuación, abra el mysql archivo de configuración.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

En el nodo principal , desplácese y localice la bind-address atributo como se muestra a continuación.

bind-address 	 =127.0.0.1

Cambie la dirección de loopback para que coincida con la dirección IP del nodo maestro .

bind-address  	=10.128.0.28

A continuación, especifique un valor para el server-id atributo en el [mysqld] sección. El número que elija no debe coincidir con ningún otro número de identificación del servidor. Asignemos el valor 1 .

server-id	 =1

Al final del archivo de configuración, copie y pegue las siguientes líneas.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Salga del archivo de configuración y reinicie el servicio MySQL para que los cambios surtan efecto en el nodo principal.

$ sudo systemctl restart mysql

Para verificar que el servidor MySQL se está ejecutando como se esperaba, emita el comando.

$ sudo systemctl status mysql

¡Perfecto! ¡El servidor MySQL está funcionando como se esperaba!

Paso 2:Cree un nuevo usuario para la replicación en el nodo maestro

En esta sección, vamos a crear un usuario de replicación en el nodo maestro . Para lograr esto, inicie sesión en el servidor MySQL como se muestra.

$ sudo mysql -u root -p

A continuación, proceda y ejecute las consultas a continuación para crear un usuario de réplica y otorgar acceso al esclavo de replicación. Recuerde utilizar su dirección IP.

mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';

A continuación, ejecute el siguiente comando.

mysql> SHOW MASTER STATUS\G

El resultado debe ser similar a lo que puede ver a continuación.

Sea entusiasta y tenga en cuenta el mysql-bin.000002 valor y el ID de posición 1643 . Estos valores serán cruciales al configurar el servidor esclavo .

Paso 3:configurar el servidor esclavo de MySQL

Dirígete al servidor esclavo y como hicimos con el servidor maestro , abra el archivo de configuración de MySQL.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Al igual que el servidor maestro , procede a editar las siguientes líneas.

bind-address           = 10.128.0.29

Como antes, especifique un valor para el server-id atributo en el [mysqld] sección. Esta vez seleccione un valor diferente. Vamos con 2 .

server-id		=2 

Nuevamente, pegue las siguientes líneas al final del archivo de configuración.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

A continuación, reinicie el servidor MySQL en el nodo esclavo.

$ sudo systemctl restart mysql

Una vez hecho esto, guarde y salga del editor de texto

A continuación, inicie sesión en el shell de MySQL como se muestra.

$ sudo mysql -u root -p

En este paso, deberá realizar alguna configuración que permita que el servidor esclavo para conectarse al servidor maestro . Pero primero, detenga los subprocesos esclavos como se muestra.

mysql> STOP SLAVE; 

Para permitir el servidor esclavo para replicar el servidor maestro , ejecute el comando.

mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email protected]', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;

Si está lo suficientemente interesado, observará que hemos utilizado mysql-bin.00002 ID de valor y posición 1643 mostrado anteriormente después de crear el usuario de replicación esclavo.

Además, se han utilizado la dirección IP del servidor maestro, el usuario de replicación y la contraseña.

Más tarde, inicie el hilo que había detenido anteriormente.

mysql> START SLAVE;

Paso 4:Verificar la replicación maestro-esclavo de MySQL

Para verificar si la configuración realmente funciona como se esperaba, crearemos una nueva base de datos en el maestro y verificaremos si se ha replicado en el servidor MySQL Slave.

Inicie sesión en MySQL en el servidor maestro .

$ sudo mysql -u root -p

Vamos a crear una base de datos de prueba. En este caso, crearemos una base de datos llamada replication_db .

mysql> CREATE DATABASE replication_db;

Ahora, inicie sesión en su instancia de MySQL en el servidor esclavo .

$ sudo mysql -u root -p

Ahora liste las bases de datos usando la consulta.

mysql> SHOW DATABASES;

Notará la base de datos que creó en el maestro se ha replicado en esclavo . Impresionante ! ¡Su replicación maestro-esclavo de MySQL está funcionando como se esperaba! Ahora puede estar seguro de que, en caso de falla, las copias de los archivos de la base de datos se replicarán en el servidor secundario.

Conclusión

En esta guía, aprendió a configurar un maestro-esclavo de MySQL configuración de replicación en Ubuntu 18.04 .