Nel processo di replica MySQL, i dati di un server vengono automaticamente copiati in tempo reale su un altro server di backup. La replica del database fornisce tolleranza agli errori e ridondanza. Se il master avrà esito negativo, i tuoi dati verranno recuperati da un altro server.
Di seguito sono riportati i passaggi per configurare la replica MySQL master-slave su RHEL 7. Per fare ciò abbiamo bisogno di 2 server con indirizzi IP diversi.
- Scarica e installa il server MySQL su entrambi i server usando il comando Yum.
# wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
# sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm # sudo yum install mysql-server - Una volta installato MySQL Server, avvialo e abilitalo per l'avvio all'avvio.
sudo systemctl enable mysqld
sudo systemctl start mysqld - Scopri la password temporanea del server MySQL utilizzando il comando seguente.
# sudo grep 'temporary password' /var/log/mysqld.log
- Esegui il comando seguente per rafforzare o proteggere il database MySQL.
# sudo mysql_secure_installation
- Inserisci la password temporanea appena ottenuta al passaggio (3) e modifica la password predefinita.
- Per fornire la massima sicurezza, premi y per tutte le risposte.
Passaggio 1 :configura il server principale
- Apri il file di configurazione di MySQL usando il tuo editor preferito.
# sudo vim /etc/my.cnf
- Aggiungi la riga sottostante nella sezione mysqld.
# bind-address = Your Master server IP Address
server-id = 1
log_bin =mysql-bin - Riavvia il servizio MySQL.
# sudo systemctl restart mysqld
- Per creare un utente di replica, accedi al server mysql utilizzando root e fornisci la password.
# sudo mysql -u root -p
- Creeremo l'utente di replica con il comando seguente e concederemo allo slave l'accesso all'utente. Assicurati di utilizzare l'indirizzo IP del tuo server.
mysql> CREATE USER 'replica'@'173.248.174.102' IDENTIFIED BY '[email protected]';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.248.174.102'; - Premi il comando seguente per ottenere il nome e la posizione del file binario.
mysql> SHOW MASTER STATUS\G
- Dovremo annotare il nome del file master mysql-bin.000034 e la sua posizione 154.
Passaggio 2:configura il server slave:
- Apri il file di configurazione di MySQL usando il tuo editor preferito.
sudo vim /etc/my.cnf
- Aggiungi la riga sottostante nella sezione mysqld.
bind-address = Your Slave server IP Address
server-id = 2
log_bin =mysql-bin - Riavvia il servizio MySQL.
sudo systemctl restart mysqld
- Configuriamo il server Slave per la replica da Master Server. Accedi al server MySQL.
sudo mysql -u root -p
mysql> STOP SLAVE; - Eseguiremo la query seguente per configurare il server slave per replicare il server master.
mysql> CHANGE MASTER TO
-> MASTER_HOST='173.248.174.101',
-> MASTER_USER='replica',
-> MASTER_PASSWORD='[email protected]',
-> MASTER_LOG_FILE='mysql-bin.000034',
-> MASTER_LOG_POS=154;
- Avvia il server slave.
mysql> START SLAVE;
Passaggio 3:testare la replica MySQL Master-Slave:
Abbiamo finito con la configurazione del server master e slave. Ora testeremo la replica su entrambi i server.
- Vai al server principale e premi il comando sotto.
sudo mysql -u root -p
- Crea un database di prova.
mysql> CREATE DATABASE replica_database;
- Vai su Slave Server e accedi al server del database MySQL.
sudo mysql -u root -p
- Elenca il database utilizzando il comando seguente.
mysql> SHOW DATABASES;
Se tutta la configurazione è corretta, vedrai il database creato nel master lì. Questo è. La nostra replica master/slave MySQL funziona bene.