Følg disse trinnene for å konfigurere MariaDB Master-master/slave-replikering:
Trinn 1 – Sjekk om GTID er aktivert
Før du starter, sjekk om GTID er aktivert. Det anbefales at du bruker GTID-er med MariaDB-replikering.
```
mysql -u rot -s
Skriv inn MariaDB root-passord
VIS GLOBALE VARIABLER SOM 'gtid_mode';
```
Sørg for at utdata fra spørringen ovenfor er PÅ eller ON_PERMISSIVE. Hvis du går AV, kjør denne kommandoen for å aktivere GTID:
```
SET GLOBAL gtid_mode=PÅ;
```
Merk:Hvis GTID opprinnelig var AV, start MariaDB-tjenesten på nytt for å gjøre denne endringen effektiv.
Trinn 2 – Opprett en ny bruker for replikering
Opprett en ny bruker som slaveserverne kan bruke til å koble til masteren og få oppdateringer. Denne brukeren bør ha rettigheten REPLIKASJON SLAVE.
```
mysql -u rot -s
OPPRETT BRUKER 'repluser'@'%' IDENTIFISERT AV 'strong-password';
GI REPLIKASJONSSLAVE PÅ *.* TIL 'repluser'@'%';
SPILLE PRIVILEGIER;
```
Trinn 3 - Konfigurer MySQL Master-Master-replikering
_a) På Master 1:_
- Stopp MariaDB-tjenesten:
```
sudo tjeneste mariadb stopp
```
- Opprett og åpne filen _my.cnf_ i et tekstredigeringsprogram.
- For Debian/Ubuntu-baserte systemer:
```
sudo nano /etc/mysql/my.cnf
```
- For RedHat/CentOS/Fedora-baserte systemer:
```
sudo nano /etc/my.cnf
```
- Rediger filen _my.cnf_ for å inkludere følgende konfigurasjon:
```
[mysqld]
Server-ID-er
server-id=1
Aktiver GTID-modus hvis den ikke allerede er aktivert
gtid_mode =PÅ
Bind til alle nettverksgrensesnitt
bindingsadresse =0.0.0.0
Replikeringskonfigurasjon
log-bin=/var/log/mysql/mariadb-bin
binlog_do_db=mydb # databasen du ønsker å replikere
Master1 vil motta sine oppdateringer fra master2. Fjern linjen nedenfor hvis dette er den første masteren du konfigurerer.
master_host =192.168.1.20
Valgfritt, om nødvendig (nyttig hvis du prøver å gjenopprette slave fra et krasj):
relay-log=/var/log/mysql/mariadb-relay-bin.log
relay-log-index=/var/log/mysql/mariadb-relay-bin.index
```
*Server_id i konfigurasjonen ovenfor skal være en unik ID for denne hovedserveren.
*Binlog_do_db spesifiserer hvilken database som skal replikeres.
*Master_verten spesifiserer IP-adressen eller vertsnavnet til den andre hovedserveren hvis du setter opp dual master-replikering.
- Lagre og avslutt konfigurasjonsfilen _my.cnf_.
- Start MariaDB-tjenesten:
```
sudo tjeneste mariadb start
```
_b) På Master 2:_
- Gjenta de samme trinnene som for master 1, bortsett fra:
- Spesifiser en annen server_id (f.eks. server-id=2)
- Spesifiser IP-adressen eller vertsnavnet til master 1 som master_host.
Trinn 4 – Konfigurer slave
_a) På slave:_
- Stopp MariaDB-tjenesten:
```
sudo tjeneste mariadb stopp
```
- Rediger _my.cnf_-filen:
```
sudo nano /etc/mysql/my.cnf
```
- Sørg for at bindingsadressen er satt til 0.0.0.0 slik at slaven kan akseptere tilkoblinger fra begge mastere.
- Legg til følgende linjer:
```
[mysqld]
Sett server-ID til samme som Master1.
server-id=1
gtid_mode =PÅ
log_slave_updates=1
```
- Lagre og avslutt konfigurasjonsfilen _my.cnf_.
- Start MariaDB-tjenesten:
```
sudo tjeneste mariadb start
```
- Koble til slavedatabasen:
```
mysql -u rot -s
```
- Konfigurer replikering på slaven:
``` mysql
ENDRE MASTER TIL
MASTER_HOST='master1_ip_address',
MASTER_USER='repluser',
MASTER_PASSWORD='sterkt passord',
MASTER_AUTO_POSITION =1;
START SLAVE;
```
_b) Overvåk replikeringsstatus:_
- Sjekk replikeringsstatus på både master og slave:
``` mysql
VIS SLAVESTATUS\G;
```
Replikeringsstatusen skal vise at slaven er tilkoblet og replikerer fra masterne.