Kako nastaviti replikacijo MySQL Master-Slave na RHEL 8


Replikacija MySQL je postopek, pri katerem se podatki z enega strežnika v realnem času samodejno kopirajo ali kopirajo na drug varnostni strežnik. Replikacija zagotavlja redundanco in odpornost na napake ter daje uporabniku mir, da je mogoče podatke tudi po okvari glavnega strežnika obnoviti.

V tej vadnici boste izvedeli, kako konfigurirati in nastaviti replikacijo MySQL master-slave na RHEL 8 Linux.

Pri namestitvi bomo imeli dva strežnika z RHEL 8 z naslednjima naslovoma IP.

Master = 173.82.120.14
Slave  = 173.82.115.165

Zdaj nadaljujmo in poglejmo, kako lahko konfiguriramo nastavitev replikacije MySQL Master-slave na RHEL 8 Linux.

1. korak: Namestite MySQL na strežnik Master in Slave

1. Najnovejša različica MySQL 8.x je že vključena v privzeti repozitorij RHEL 8 in jo lahko namestite z naslednjim ukazom yum.

# yum -y install @mysql

2. korak: Zavarujte MySQL na strežniku Master in Slave

Po namestitvi morate zdaj zagnati storitev MySQL, ki ste jo pravkar namestili, in jo samodejno zagnati vsakič, ko zaženete strežnik. Zato uporabite naslednji ukaz.

# systemctl enable mysqld
# systemctl start mysqld

Nato morate zaščititi namestitev MySQL z zagonom varnostnega skripta, ki je priložen več varnostnim operacijam, na primer nastavitvi korenskega gesla, odstranjevanju anonimnih uporabnikov, oddaljeni onemogočitvi prijave za root, odstranitvi testne baze podatkov in privilegiju za ponovno nalaganje.

# mysql_secure_installation

Nadaljujte s preostalim pozivom in odgovorite Da na vsa vprašanja, zato nastavite strežnik na najboljše varnostne postopke.

3. korak: Konfiguriranje glavnega strežnika MySQL

Če želite začeti s konfiguracijo glavnega strežnika, nadaljujte in odprite konfiguracijsko datoteko MySQL, tako da vnesete naslednji ukaz.

$ sudo vim /etc/my.cnf

V odsek mysqld dodajte vrstice, kot je prikazano spodaj.

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

Na koncu ponovno zaženite storitev MySQL.

$ sudo systemctl restart mysqld

Zdaj bomo ustvarili uporabnika za kopiranje. Zato se v glavni strežnik MySQL prijavite kot korenski uporabnik in vnesite geslo.

$ sudo mysql -u root -p

Zdaj zaženite naslednje ukaze, da ustvarite uporabnika replike, hkrati pa uporabniku omogočite podrejeni dostop. Ne pozabite uporabiti naslova IP vašega računalnika.

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

Zdaj boste vnesli naslednji ukaz, ki bo natisnil binarno ime datoteke in položaj.

mysql> SHOW MASTER STATUS\G

Ne pozabite si zapomniti nastalega imena datoteke msql-bin.000002 in njegovega položaja 939 .

4. korak: Konfiguriranje strežnika MySQL Slave

Tako kot postopek nastavitve glavne enote morate tudi v konfiguracijski datoteki mysql slave narediti naslednje spremembe.

$ sudo vim  /etc/my.cnf

V konfiguracijsko datoteko dodajte naslednje vrstice v razdelek mysqld .

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

Znova zaženite strežnik.

$ sudo systemctl restart mysqld

Zdaj je naslednji korak konfiguriranje podrejenega strežnika za replikacijo z glavnega strežnika. Prijavite se v strežnik MySQL.

$ sudo mysql -u root -p

Najprej ustavite niti kopiranja.

mysql> STOP SLAVE;

Zdaj zaženite naslednjo poizvedbo, ki bo konfigurirala pomožni sistem za replikacijo iz glavnega strežnika.

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

Prepričajte se, da uporabljate pravilno uporabniško ime in geslo za IP. Uporabite tudi ime datoteke in položaj, ki ste ga dobili od glavnega strežnika.

Na koncu vnesite naslednji ukaz, da zaženete podrejene niti.

mysql> START SLAVE;

5. korak: Testiranje replikacije MySQL Master-Slave

Na tej točki ste dokončali konfiguracijo glavnega in pomožnega strežnika. Zdaj moramo preveriti, ali konfiguracija deluje in ali lahko pride do podvajanja.

Če želite to narediti, pojdite na glavni strežnik in se prijavite v strežnik baz podatkov MySQL.

$ sudo mysql -u root -p

Ustvarite vzorčno bazo podatkov.

mysql> CREATE DATABASE replication_database;

Zdaj se odpravite na strežnik Slave in se znova prijavite v strežnik baz podatkov MySQL.

$ sudo mysql -u root -p

Zdaj navedite vse zbirke podatkov z naslednjim ukazom.

mysql> SHOW DATABASES;

Če vidite ustvarjeno bazo podatkov, potem nastavitev MySQL Master-Slave Replication deluje.

Replikacija je dokaj preprost postopek, ki ga je mogoče enostavno narediti. V tem priročniku ste se naučili, kako lahko ustvarite replikacijo mojstra MySQL za pomož v RHEL 8 Linuxu.