GNU/Linux >> Linux Esercitazione >  >> Linux

Replica Master-Slave con MariaDB

Ecco come ho configurato la replica Master-Slave con MariaDB. Poiché MariaDB è un fork di MySQL, dovresti seguire gli stessi passaggi.

La mia configurazione

Presumo che tu abbia già due server Maria/MySQL in esecuzione. Queste sono le mie caratteristiche:

  • OS:Debian testando "Bookworm"
  • Versione MariaDB:10.5.12

Sto lavorando con due macchine virtuali, per creare lo slave ho duplicato la vm master.

  • Maestro:192.168.122.13
  • Schiavo:192.168.122.223

Se non hai un database maria o mysql, qui su unixcop abbiamo un paio di tutorial, anche qui, qui o qui.

Maestro

Come ho detto prima, presumo che tu abbia già una maria o mysql in esecuzione. Abbiamo bisogno di fare qualche configurazione sul master, quindi sull'host slave.

Modifica /etc/mysql/mariadb.conf.d/50-server.cnf (o il file appropriato nella tua configurazione) e modifica le seguenti righe:

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

Riavvia MariaDB e crea un utente con privilegi di replica:

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;

Scegli il nome utente e la password che desideri, esclavo significa schiavo sullo spagnolo. Imposta l'indirizzo IP del tuo slave MariaDB. Successivamente puoi vedere lo stato con SHOW MASTER STATUS.

L'ultimo passaggio (quasi, torneremo più tardi) sul master è copiare tutti i dati nel server master sullo slave. Creiamo un dump con:

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

Schiavo

Sul server slave, cambia prima il file di configurazione /etc/mysql/mariadb.conf.d/50-server.cnf nelle stesse righe del master:

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

Riavvia MariaDB e carica il dump dal master con:

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

Quindi arresta lo slave, imposta l'host master e avvia lo slave con i seguenti comandi:

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;

Non dimenticare di modificare l'ip host, l'utente e la password con i tuoi valori se stai solo copiando e incollando quei comandi;).

Test e riparazione

Dovrebbe farlo. Se tutto funziona come previsto, dovresti avere la replica master-slave con MariaDB.

Ora puoi creare un database sul master e quel database dovrebbe apparire automaticamente nello slave. Ma non ha funzionato per me. Ho creato un database sul master con:

MariaDB [(none)]> CREATE DATABASE somedatabase;

E non è stato replicato sullo schiavo. Per capire perché, ho eseguito nel server slave:

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

Quando ho cercato su Google quell'errore, hanno suggerito di eliminare l'utente esclavo e svuota i privilegi. Questo sul server slave, arresta anche lo slave prima di eliminare l'utente e avvia lo slave dopo aver scaricato i privilegi:

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

E questo mi è stato risolto, come puoi vedere nello screenshot ora c'è un database di database sul server slave. Ed è vuoto. Sono quindi tornato al master per creare una tabella e popolare con i dati:

L'ultimo passaggio è controllare sullo slave se la tabella è stata creata e se sono presenti dati all'interno:

Per sicurezza, puoi controllare lo stato dello slave un'altra volta (o qualsiasi altra volta in futuro se qualcosa sembra non andare).

E infine ho impostato la replica master-slave con MariaDB.


Linux
  1. Come impostare la replica MySQL Master Slave

  2. Come configurare la replica MySQL Master-Slave su Ubuntu 18.04

  3. Configurazione della replica Master-Master con MySQL su Debian 8 (Jessie)

  4. Come sostituire MySQL con MariaDB su CentOS 6

  5. Come configurare MariaDB Master Slave Replication su Ubuntu 18.04

Replica Master-Master con MariaDB

Come configurare la replica Master-Slave MariaDB su CentOS 7

Come installare il server Web OpenLiteSpeed ​​con MariaDB e PHP

Come impostare la replica MySQL Master-Slave su RHEL 7?

Come gestire le cassette postali con RoundCube su CentOS 7

8 passaggi per installare MirthConnect con MySQL / MariaDB su Linux