Slik konfigurerer du MySQL Master-Slave-replikering på RHEL 8


MySQL-replikering er en prosess der data fra én server automatisk kopieres eller replikeres til en annen backupserver i sanntid. Replikering gir redundans og feiltoleranse og gir brukeren trygghet i at selv etter en feil i hovedserveren kan data fortsatt gjenopprettes.

I denne opplæringen skal du lære hvordan du konfigurerer og setter opp en MySQL master-slave-replikering på en RHEL 8 Linux.

Forutsetninger

I oppsettet kommer vi til å ha to servere som kjører RHEL 8 med følgende IP-adresser.

Master = 173.82.120.14
Slave  = 173.82.115.165

La oss nå fortsette og se hvordan vi kan konfigurere MySQL Master-slave-replikeringsoppsettet på RHEL 8 Linux.

Trinn 1: Installer MySQL på Master og Slave Server

1. Den nyeste versjonen av MySQL 8.x er allerede inkludert i standarddepotet til RHEL 8, og du kan installere det ved å bruke følgende nam kommando.

yum -y install @mysql

Trinn 2: Sikre MySQL på Master og Slave Server

Etter installasjonen bør du nå starte MySQL-tjenesten du nettopp installerte og få den til å starte automatisk hver gang du starter serveren. Bruk derfor følgende kommando.

systemctl enable mysqld
systemctl start mysqld

Deretter må du sikre MySQL-installasjonen din ved å kjøre sikkerhetsskriptet som følger med flere sikkerhetsbaserte operasjoner som å angi root-passordet, fjerne anonyme brukere, nekte root-pålogging eksternt, fjerne testdatabase og laste inn på nytt privilegium.

mysql_secure_installation

Fortsett med resten av forespørselen og svar Ja på alle spørsmålene, så konfigurer serveren til beste sikkerhetspraksis.

Trinn 3: Konfigurere MySQL Master Server

For å starte med Master-serverkonfigurasjonen, fortsett og åpne MySQL-konfigurasjonsfilen ved å skrive inn følgende kommando.

sudo vim /etc/my.cnf

I mysqld-delen legger du til linjene som vist nedenfor.

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

Til slutt starter du MySQL-tjenesten på nytt.

sudo systemctl restart mysqld

Nå skal vi opprette en replikeringsbruker. Logg derfor på MySQL-masterserveren som root-bruker og oppgi passordet.

sudo mysql -u root -p

Kjør nå følgende kommandoer for å opprette replikabrukeren samtidig som du gir slavetilgangen til brukeren. Husk å bruke maskinens IP-adresse.

mysql> CREATE USER 'replica'@'173.82.115.165' IDENTIFIED BY 'strong_password';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.82.115.165';

Nå skal du skrive inn følgende kommando som vil skrive ut det binære filnavnet og posisjonen.

mysql> SHOW MASTER STATUS\G

Husk å legge merke til det resulterende filnavnet msql-bin.000002 og dets posisjon 939.

Trinn 4: Konfigurere MySQL-slaveserveren

Akkurat som prosessen med å sette opp masteren, bør du gjøre følgende endringer i mysql slave konfigurasjonsfilen.

sudo vim  /etc/my.cnf

Legg til følgende linjer i konfigurasjonsfilen under mysqld-delen.

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

Start serveren på nytt.

sudo systemctl restart mysqld

Nå er neste trinn å konfigurere slaveserveren til å replikere fra masterserveren. Logg inn på MySQL-serveren.

sudo mysql -u root -p

Stopp først replikeringstrådene.

mysql> STOP SLAVE;

Kjør nå følgende spørring som vil konfigurere slaven til å replikere fra Master-serveren.

mysql> CHANGE MASTER TO
    -> MASTER_HOST='173.82.120.14' ,
    -> MASTER_USER='replica' ,
    -> MASTER_PASSWORD='Jupiter@2030' ,
    -> MASTER_LOG_FILE='mysql-bin.000002' ,
    -> MASTER_LOG_POS=939;

Pass på at du bruker riktig IP-brukernavn og passord. Bruk også filnavnet og posisjonen du fikk fra hovedserveren.

Til slutt skriver du inn følgende kommando for å starte slavetrådene.

mysql> START SLAVE;

Trinn 5: Testing av MySQL Master-Slave-replikering

På dette tidspunktet har du fullført konfigurasjonen av både master- og slaveservere. Vi må nå verifisere om konfigurasjonen fungerer og om replikeringen kan finne sted.

For å gjøre dette, gå ut til master-serveren og logg på MySQL-databaseserveren.

sudo mysql -u root -p

Lag en eksempeldatabase.

mysql> CREATE DATABASE replication_database;

Gå nå ut til Slave-serveren og logg inn på MySQL-databaseserveren igjen.

sudo mysql -u root -p

List nå alle databasene ved å bruke følgende kommando.

mysql> SHOW DATABASES;

Hvis du ser den opprettede databasen, fungerer MySQL Master-Slave Replication-oppsettet.

Konklusjon

Replikering er en ganske enkel prosess som enkelt kan gjøres. I denne veiledningen har du lært hvordan du kan lage en replikering av en MySQL-master til slave i en RHEL 8 Linux.