Passaggio 1:controlla se GTID è abilitato
Prima di iniziare, controlla se GTID è abilitato. Si consiglia di utilizzare i GTID con la replica MariaDB.
```
mysql -u root -p
MOSTRA VARIABILI GLOBALI COME 'gtid_mode';
```
Assicurarsi che l'output della query precedente sia ON o ON_PERMISSIVE. Se disattivi, esegui questo comando per abilitare GTID:
```
IMPOSTA GLOBALE gtid_mode=ON;
```
Nota:se GTID inizialmente era DISATTIVATO, riavviare il servizio MariaDB per rendere effettiva questa modifica.
Passaggio 2:crea un nuovo utente per la replica
Crea un nuovo utente che i server slave potranno utilizzare per connettersi al master e ottenere aggiornamenti. Questo utente deve avere il privilegio REPLICATION SLAVE.
```
mysql -u root -p
CREA UTENTE 'repluser'@'%' IDENTIFICATO DA 'strong-password';
CONCEDI SLAVE DI REPLICAZIONE SU *.* A 'repluser'@'%';
PRIVILEGI A FILO;
```
Passaggio 3:impostazione della replica MySQL Master-Master
_a) Sul Master 1:_
- Arresta il servizio MariaDB:
```
sudo servizio mariadb stop
```
- Crea e apri il file _my.cnf_ in un editor di testo.
- Per sistemi basati su Debian/Ubuntu:
```
sudo nano /etc/mysql/my.cnf
```
- Per sistemi basati su RedHat/CentOS/Fedora:
```
sudo nano /etc/my.cnf
```
- Modifica il file _my.cnf_ per includere la seguente configurazione:
```
[mysqld]
ID-server=1
gtid_mode =ATTIVO
indirizzo di associazione =0.0.0.0
log-bin=/var/log/mysql/mariadb-bin
binlog_do_db=mydb # il database che desideri replicare
host_master =192.168.1.20
relè-log=/var/log/mysql/mariadb-relay-bin.log
relè-log-index=/var/log/mysql/mariadb-relay-bin.index
```
*Il server_id nella configurazione precedente dovrebbe essere un ID univoco per questo server master.
*binlog_do_db specifica quale database replicare.
*master_host specifica l'indirizzo IP o il nome host dell'altro server master se si sta configurando la replica dual master.
- Salva ed esci dal file di configurazione _my.cnf_.
- Avvia il servizio MariaDB:
```
sudo service mariadb start
```
_b) Sul Master 2:_
- Ripetere gli stessi passi del master 1, tranne:
- Specificare un server_id diverso (ad esempio server-id=2)
- Specificare l'indirizzo IP o il nome host del master 1 come master_host.
Passaggio 4:configurazione dello slave
_a) Sullo schiavo:_
- Arresta il servizio MariaDB:
```
sudo servizio mariadb stop
```
- Modifica il file _my.cnf_:
```
sudo nano /etc/mysql/my.cnf
```
- Assicurarsi che l'indirizzo di collegamento sia impostato su 0.0.0.0 in modo che lo slave possa accettare connessioni da entrambi i master.
- Aggiungi le seguenti righe:
```
[mysqld]
ID-server=1
gtid_mode =ATTIVO
log_slave_updates=1
```
- Salva ed esci dal file di configurazione _my.cnf_.
- Avvia il servizio MariaDB:
```
sudo service mariadb start
```
- Connettiti al database slave:
```
mysql -u root -p
```
- Configurare la replica sullo slave:
"mysql
CAMBIA MAESTRO IN
MASTER_HOST='indirizzo_ip_master1',
MASTER_USER='ripetitore',
MASTER_PASSWORD='password complessa',
POSIZIONE_AUTO_MASTER =1;
INIZIA SCHIAVO;
```
_b) Monitorare lo stato della replica:_
- Controlla lo stato della replica sia sul master che sullo slave:
"mysql
MOSTRA STATO SLAVE\G;
```
Lo stato della replica dovrebbe mostrare che lo slave è connesso e sta replicando dai master.
hardware © www.354353.com