MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come configurare la replica MySQL Master-Slave su Ubuntu 18.04

MySQL la replica master-slave è una procedura che consente di replicare o copiare i file di database su uno o più nodi di una rete. Questa configurazione fornisce ridondanza e tolleranza agli errori in modo tale che in caso di guasto nel nodo master , i database possono ancora essere ripristinati nel nodo Slave . Ciò offre agli utenti la tranquillità che non tutto andrà perso in nessuna eventualità poiché una replica dei database può ancora essere recuperata da un server diverso.

In questa guida imparerai come eseguire un MySQL database Master-slave replica su Ubuntu 18.04 sistema.

Prerequisiti

Nella configurazione, avremo due server che eseguono Ubuntu 18.04 con i seguenti indirizzi IP.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Entriamo ora e vediamo come possiamo configurare il Master-slave configurazione della replica su Ubuntu .

Passaggio 1:installa MySQL sui nodi master e slave

Ubuntu i repository contengono la versione 5.7 di MySQL . Per sfruttare tutte le nuove funzionalità ed evitare potenziali problemi, è necessario installare l'ultima versione di MySQL. Ma prima, aggiorniamo i due nodi usando il seguente comando apt.

$ sudo apt update

Per installare MySQL su entrambi i nodi, eseguire il comando.

$ sudo apt install mysql-server mysql-client

Quindi, apri mysql file di configurazione.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Sul nodo principale , scorri e individua il bind-address attributo come mostrato di seguito.

bind-address 	 =127.0.0.1

Modifica l'indirizzo di loopback in modo che corrisponda all'indirizzo IP del nodo master .

bind-address  	=10.128.0.28

Quindi, specifica un valore per server-id attributo nel [mysqld] sezione. Il numero che scegli non deve corrispondere a nessun altro numero di ID server. Assegniamo il valore 1 .

server-id	 =1

Alla fine del file di configurazione, copia e incolla le righe sottostanti.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Esci dal file di configurazione e riavvia il servizio MySQL affinché le modifiche abbiano effetto sul nodo Master.

$ sudo systemctl restart mysql

Per verificare che il server MySQL funzioni come previsto, emetti il ​​comando.

$ sudo systemctl status mysql

Perfetto! Il server MySQL funziona come previsto!

Fase 2:crea un nuovo utente per la replica sul nodo principale

In questa sezione creeremo un utente di replica nel nodo master . Per ottenere ciò, accedi al server MySQL come mostrato.

$ sudo mysql -u root -p

Quindi, procedi ed esegui le query seguenti per creare un utente di replica e concedere l'accesso allo slave di replica. Ricordati di utilizzare il tuo indirizzo IP.

mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';

Quindi, esegui il comando seguente.

mysql> SHOW MASTER STATUS\G

L'output dovrebbe essere simile a quello che puoi vedere di seguito.

Sii appassionato e prendi nota di mysql-bin.000002 valore e l'ID posizione 1643 . Questi valori saranno fondamentali durante la configurazione del server slave .

Fase 3:Configura il server slave MySQL

Vai al server slave e come abbiamo fatto con il server principale , apri il file di configurazione MySQL.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Proprio come il server principale , procedi alla modifica delle seguenti righe.

bind-address           = 10.128.0.29

Come prima, specifica un valore per server-id attributo nel [mysqld] sezione. Questa volta seleziona un valore diverso. Andiamo con 2 .

server-id		=2 

Ancora una volta, incolla le righe sottostanti alla fine del file di configurazione.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Quindi riavvia il server MySQL sul nodo slave.

$ sudo systemctl restart mysql

Al termine, salva ed esci dall'editor di testo

Quindi, accedi alla shell MySQL come mostrato.

$ sudo mysql -u root -p

In questo passaggio, dovrai eseguire alcune configurazioni che consentiranno il server slave per connettersi al server principale . Ma prima, interrompi i thread slave come mostrato.

mysql> STOP SLAVE; 

Per consentire il server slave per replicare il server principale , esegui il comando.

mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email protected]', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;

Se sei abbastanza appassionato, noterai che abbiamo usato mysql-bin.00002 valore e ID posizione 1643 visualizzato in precedenza dopo la creazione dell'utente di replica slave.

Inoltre, sono stati utilizzati l'indirizzo IP, l'utente di replica e la password del server principale.

Successivamente, avvia il thread interrotto in precedenza.

mysql> START SLAVE;

Fase 4:verifica la replica MySQL Master-Slave

Per verificare se l'installazione funziona davvero come previsto, creeremo un nuovo database sul master e verificheremo se è stato replicato sul server MySQL Slave.

Accedi a MySQL nel server principale .

$ sudo mysql -u root -p

Creiamo un database di prova. In questo caso, creeremo un database chiamato replication_db .

mysql> CREATE DATABASE replication_db;

Ora accedi alla tua istanza MySQL nel server slave .

$ sudo mysql -u root -p

Ora elenca i database usando la query.

mysql> SHOW DATABASES;

Noterai il database che hai creato sul master è stato replicato su slave . Eccezionale ! La tua replica MySQL Master-slave funziona come previsto! Ora puoi essere certo che, in caso di errore, le copie dei file di database verranno replicate sul server slave.

Conclusione

In questa guida hai imparato a configurare un MySQL Master-slave configurazione della replica su Ubuntu 18.04 .