Mysql
 sql >> Database >  >> RDS >> Mysql

Come impostare la replica MySQL in RHEL, Rocky e AlmaLinux

La replica dei dati è il processo di copia dei dati su più server per migliorare la disponibilità dei dati e migliorare l'affidabilità e le prestazioni di un'applicazione. In MySQL replica, i dati vengono copiati da un database dal server master ad altri nodi in tempo reale per garantire la coerenza dei dati e anche per fornire backup e ridondanza.

In questa guida mostriamo come configurare MySQL (Maestro-Schiavo ) replica in distribuzioni basate su RHEL come CentOS , Fedora , Linux roccioso, e AlmaLinux .

Impostazione replica MySQL

Quindi, ecco il nostro MySQL configurazione del laboratorio di replica.

MySQL Master - 10.128.0.14
MySQL Slave - 10.128.15.211

Iniziamo...

Passaggio 1:installa MySQL su server master e slave

Inizieremo installando MySQL database su entrambi i master e schiavo server.

$ sudo dnf install @mysql

Una volta completata l'installazione, fai in modo di avviare il server del database.

$ sudo systemctl start mysqld

Quindi abilitalo per l'avvio all'avvio del sistema o al riavvio.

$ sudo systemctl enable mysqld

Successivamente, conferma che MySQL il server del database è in esecuzione come mostrato:

$ sudo systemctl status mysqld

Fase 2:proteggi MySQL su server master e slave

Il passaggio successivo è proteggere MySQL database su entrambi i master e schiavo server. Questo perché le impostazioni predefinite non sono sicure e presentano alcune scappatoie che possono essere facilmente sfruttate dagli hacker.

Quindi, per rafforzare MySQL, esegui il comando:

$ sudo mysql_secure_installation

Innanzitutto, ti verrà richiesto di impostare MySQL password di root. Assicurati di fornire una password di root complessa, preferibilmente con più di 8 caratteri che sono un mix di caratteri maiuscoli, minuscoli, speciali e numerici.

Per i restanti prompt, digita 'Y' per modificare il server di database sulle impostazioni consigliate.

Una volta terminata l'installazione e la protezione avanzata di MySQL sul nodo master e slave, il passo successivo è configurare il nodo master.

Fase 3:Configura il nodo principale (server)

Il passaggio successivo consiste nel configurare il Master nodo e concedi lo slave accesso del nodo ad esso. Innanzitutto, dobbiamo modificare mysql-server.cnf file di configurazione.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Aggiungi le seguenti righe sotto [mysqld] sezione.

bind-address	 = 10.128.0.14
server-id 	 = 1
log_bin		 = mysql-bin

Al termine, salva le modifiche ed esci. Quindi riavvia MySQL server.

$ sudo sysemctl restart mysqld

Quindi, accedi a MySQL guscio.

$ sudo mysql -u root -p

Esegui i seguenti comandi per creare un utente del database che verrà utilizzato per associare il master e lo slave per la replica.

mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFIED BY '[email protected]';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'10.128.15.211';

Applica le modifiche ed esci da MySQL server.

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Verifica lo stato del master.

mysql> SHOW MASTER STATUS\G

Prendi nota del nome del file e della posizione. Ne avrai bisogno in seguito durante la configurazione dello slave per la replica. Nel nostro caso, abbiamo il nome del file come mysql-bin.000001 e Posizione 1232 .

Fase 4:Configura il nodo slave (server)

Ora, torna al nodo Slave. Ancora una volta, modifica mysql-server.cnf file di configurazione.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Come prima, incolla queste righe sotto [mysqld] sezione. Modificare l'indirizzo IP in modo che corrisponda all'IP dello slave. Inoltre, assegna un diverso ID server . Qui gli abbiamo assegnato il valore di 2 .

bind-address	 = 10.128.15.211
server-id	 = 2
log_bin 	 = mysql-bin

Salva le modifiche ed esci dal file. Quindi riavvia il server del database.

$ sudo systemctl restart mysqld

Per configurare lo Slave nodo per replicare dal nodo Master, accedi al server MySQL dello Slave.

$ sudo mysql -u root -p

Innanzitutto, interrompi i thread di replica:

mysql> STOP SLAVE;

Quindi eseguire il comando seguente per configurare il nodo slave per replicare i database dal master.

mysql> CHANGE MASTER TO
     MASTER_HOST='10.128.0.14' ,
     MASTER_USER='replica' ,
     MASTER_PASSWORD='[email protected]' ,
     MASTER_LOG_FILE='mysql-bin.000001' ,
     MASTER_LOG_POS=1232;

Nota che il MASTER_LOG_FILE e MASTER_LOG_POS i flag corrispondono al file e alla Posizione valori del Master nodo alla fine del passaggio 1.

Il MASTER_HOST , MASTER_USER, e MASTER_PASSWORD corrispondono rispettivamente all'indirizzo IP principale, all'utente di replica e alla password dell'utente di replica.

Quindi avvia i thread di replica slave:

mysql> START SLAVE;

Fase 4:test della replica MySQL Master-Slave

Ora, per verificare se la replica tra il nodo master e quello slave funziona, accedi al server del database MySQL sul nodo master:

$ sudo mysql -u root -p

Crea un database di prova. Qui, il nostro database di test si chiama replication_db .

mysql> CREATE DATABASE replication_db;
Verify the existence of the database.
mysql> SHOW DATABASES;

Ora vai al nodo slave, accedi al server MySQL e conferma che il db_replica la banca dati è presente. Dall'output sottostante, possiamo vedere che il database è presente. Questa è la conferma che la replica è avvenuta dal nodo Master al nodo slave.

mysql> SHOW DATABASES;

E il gioco è fatto, abbiamo dimostrato con successo come configurare un MySQL modello di replica master-slave in grado di replicare i database dal nodo master al nodo slave.