Volg deze stappen om MariaDB Master-master/slave-replicatie te configureren:
Stap 1 - Controleer of GTID is ingeschakeld
Controleer voordat u begint of GTID is ingeschakeld. Het wordt aanbevolen dat u GTID's gebruikt bij MariaDB-replicatie.
```
mysql -u root-p
Voer het MariaDB-rootwachtwoord in
TOON GLOBALE VARIABELEN ZOALS 'gtid_mode';
```
Zorg ervoor dat de uitvoer van de bovenstaande query AAN of ON_PERMISSIVE is. Als u UIT gaat, voert u deze opdracht uit om GTID in te schakelen:
```
SET GLOBAL gtid_mode=AAN;
```
Opmerking:als GTID aanvankelijk UIT was, start u de MariaDB-service opnieuw op om deze wijziging door te voeren.
Stap 2 - Maak een nieuwe gebruiker voor replicatie
Maak een nieuwe gebruiker aan die de slaveservers kunnen gebruiken om verbinding te maken met de master en updates te ontvangen. Deze gebruiker moet het privilege REPLICATION SLAVE hebben.
```
mysql -u root-p
MAAK GEBRUIKER 'repluser'@'%' GEIDENTIFICEERD DOOR 'sterk wachtwoord';
VERLEEN REPLICATIESLAVE OP *.* AAN 'repluser'@'%';
SPOEL PRIVILEGES;
```
Stap 3 - MySQL Master-Master-replicatie instellen
_a) Op Master 1:_
- Stop de MariaDB-service:
```
sudo-service mariadb stop
```
- Maak en open het bestand _my.cnf_ in een teksteditor.
- Voor op Debian/Ubuntu gebaseerde systemen:
```
sudo nano /etc/mysql/my.cnf
```
- Voor op RedHat/CentOS/Fedora gebaseerde systemen:
```
sudo nano /etc/my.cnf
```
- Bewerk het bestand _my.cnf_ zodat het de volgende configuratie bevat:
```
[mysqld]
Server-ID's
server-id=1
Schakel de GTID-modus in als deze nog niet is ingeschakeld
gtid_mode =AAN
Verbinden met alle netwerkinterfaces
bindadres =0.0.0.0
Replicatieconfiguratie
log-bin=/var/log/mysql/mariadb-bin
binlog_do_db=mydb # de database die u wilt repliceren
Master1 ontvangt zijn updates van master2. Verwijder de onderstaande regel als dit de eerste master is die u configureert.
master_host =192.168.1.20
Optioneel, indien nodig (handig als u de slaaf probeert te herstellen na een crash):
relay-log=/var/log/mysql/mariadb-relay-bin.log
relay-log-index=/var/log/mysql/mariadb-relay-bin.index
```
*De server_id in de bovenstaande configuratie moet een unieke ID zijn voor deze masterserver.
*De binlog_do_db specificeert welke database moet worden gerepliceerd.
*De master_host specificeert het IP-adres of de hostnaam van de andere masterserver als u dubbele masterreplicatie instelt.
- Bewaar het configuratiebestand _my.cnf_ en sluit het af.
- Start de MariaDB-service:
```
sudo-service mariadb start
```
_b) Op master 2:_
- Herhaal dezelfde stappen als voor master 1, behalve:
- Geef een andere server_id op (bijvoorbeeld server-id=2)
- Geef het IP-adres of de hostnaam van master 1 op als master_host.
Stap 4 - Slave instellen
_a) Op slaaf:_
- Stop de MariaDB-service:
```
sudo-service mariadb stop
```
- Bewerk het bestand _my.cnf_:
```
sudo nano /etc/mysql/my.cnf
```
- Zorg ervoor dat het bindadres is ingesteld op 0.0.0.0, zodat de slave verbindingen van beide masters kan accepteren.
- Voeg de volgende regels toe:
```
[mysqld]
Stel de server-ID in op hetzelfde als Master1.
server-id=1
gtid_mode =AAN
log_slave_updates=1
```
- Bewaar het configuratiebestand _my.cnf_ en sluit het af.
- Start de MariaDB-service:
```
sudo-service mariadb start
```
- Maak verbinding met de slavendatabase:
```
mysql -u root-p
```
- Configureer replicatie op de slaaf:
```mysql
WIJZIG MASTER NAAR
MASTER_HOST='master1_ip_adres',
MASTER_USER='repluser',
MASTER_PASSWORD='sterk wachtwoord',
MASTER_AUTO_POSITION =1;
START SLAVE;
```
_b) Replicatiestatus controleren:_
- Controleer de replicatiestatus op zowel masters als de slave:
```mysql
TOON SLAVESTATUS\G;
```
De replicatiestatus moet aantonen dat de slave verbonden is en repliceert vanaf de masters. |