GNU/Linux >> Tutoriales Linux >  >> Linux

Replicación maestro-esclavo con MariaDB

Así es como configuré la replicación Master-Slave con MariaDB. Dado que MariaDB es una bifurcación de MySQL, debe seguir los mismos pasos.

Mi configuración

Supongo que ya tiene dos servidores Maria/MySQL en ejecución. Esas son las características de la mía:

  • OS:Prueba de Debian 'Ratón de biblioteca'
  • Versión de MariaDB:10.5.12

Estoy trabajando con dos máquinas virtuales, para crear la esclava he duplicado la máquina virtual maestra.

  • Maestro:192.168.122.13
  • Esclavo:192.168.122.223

Si no tienes una base de datos maria o mysql, aquí en unixcop tenemos un par de tutoriales, también aquí, aquí o aquí.

Maestro

Como he dicho antes, asumo que ya tienes un maria o mysql ejecutándose. Necesitamos hacer alguna configuración en el maestro, luego en el host esclavo.

Edite /etc/mysql/mariadb.conf.d/50-server.cnf (o el archivo apropiado en su configuración) y cambie las siguientes líneas:

bind-address = <your.master.host.ip>
server-id=1

Reinicie MariaDB y cree un usuario con privilegios de replicación:

MariaDB [(none)]> CREATE USER 'esclavo'@'192.168.122.223' IDENTIFIED BY 'SlavePass' ;
MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'esclavo'@'192.168.122.223';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> FLUSH TABLES WITH READ LOCK;

Elige el nombre de usuario y la contraseña que quieras, esclavo significa esclavo en español Configure la dirección IP de su esclavo MariaDB. A continuación, podría ver el estado con SHOW MASTER STATUS.

El (casi, volveremos más adelante) último paso en el maestro es copiar todos los datos en el servidor maestro al esclavo. Vamos a crear un volcado con:

root@my1:~# mysqldump -u root --all-databases -p  --master-data > data.sql

Esclavo

En el servidor esclavo, primero cambie el archivo de configuración /etc/mysql/mariadb.conf.d/50-server.cnf en las mismas líneas que el maestro:

bind-address = <your.slave.host.ip> 
server-id=1

Reinicie MariaDB y cargue el volcado desde el maestro con:

root@my2:/home/gonz# mysql -uroot < data.sql

Luego detenga el esclavo, configure el host maestro e inicie el esclavo con los siguientes comandos:

root@my2:/home/gonz# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 41
Server version: 10.5.12-MariaDB-1-log Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> stop slave;
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.122.13', MASTER_USER='esclavo',MASTER_PASSWORD='SlavePass';
MariaDB [(none)]> START SLAVE;

No olvide cambiar la IP del host, el usuario y la contraseña a sus valores si solo está copiando y pegando esos comandos;).

Pruebas y arreglos

Deberias hacer eso. Si todo funciona como se esperaba, debería tener replicación maestro-esclavo con MariaDB.

Ahora puede crear una base de datos en el maestro y esa base de datos debería aparecer automáticamente en el esclavo. Pero no funcionó para mí. Creé una base de datos en el maestro con:

MariaDB [(none)]> CREATE DATABASE somedatabase;

Y no fue replicado en el esclavo. Para ver por qué, he ejecutado en el servidor esclavo:

MariaDB [(none)]> show slave status\G ;

Cuando busqué en Google ese error, me sugirieron eliminar al usuario esclavo y vaciar los privilegios. Esto en el servidor esclavo, también detenga el esclavo antes de eliminar al usuario e inicie el esclavo después de vaciar los privilegios:

MariaDB [(none)]> stop slave;
MariaDB [(none)]> drop user 'esclavo'@'192.168.122.223';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> start slave;

Y esto me solucionó, como puede ver en la captura de pantalla, ahora hay una base de datos en el servidor esclavo. Y está vacío. Luego volví al maestro para crear una tabla y completar con datos:

El último paso es verificar en el esclavo si se creó la tabla y hay datos dentro:

Solo para estar seguro, puede verificar el estado del esclavo una vez más (o en cualquier otro momento en el futuro si algo parece estar mal).

Y finalmente configuré la replicación maestro-esclavo con MariaDB.


Linux
  1. Cómo configurar la replicación de esclavo maestro de MySQL

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

  3. Configuración de Master-Master Replication con MySQL en Debian 8 (Jessie)

  4. Cómo reemplazar MySQL con MariaDB en CentOS 6

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

Replicación maestro-maestro con MariaDB

Cómo configurar la replicación maestro-esclavo de MariaDB en CentOS 7

Cómo instalar el servidor web OpenLiteSpeed ​​con MariaDB y PHP

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

Cómo administrar Buzones con RoundCube en CentOS 7

8 pasos para instalar MirthConnect con MySQL / MariaDB en Linux