Kaip nustatyti „MySQL Master-Slave“ replikaciją „Ubuntu 18.04“.


MySQL pagrindinio ir pavaldinio replikacija yra procedūra, leidžianti duomenų bazės failus replikuoti arba kopijuoti viename ar daugiau tinklo mazgų. Ši sąranka užtikrina dubliavimą ir atsparumą gedimams, kad įvykus gedimui pagrindiniame mazge, duomenų bazes vis tiek galima atkurti pagalbiniame mazge. Tai suteikia vartotojams ramybę, kad bet kuriuo atveju viskas nebus prarasta, nes duomenų bazių kopijas vis tiek galima gauti iš kito serverio.

Šiame vadove sužinosite, kaip atlikti MySQL duomenų bazės pagrindinio-pavaldžio replikaciją Ubuntu 18.04 sistemoje.

Būtinos sąlygos

Atlikdami sąranką turėsime du serverius, kuriuose veiks Ubuntu 18.04 su šiais IP adresais.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Dabar pasinerkime ir pažiūrėkime, kaip galime sukonfigūruoti Pagrindinio-slave replikacijos sąranką Ubuntu.

1 veiksmas: įdiekite „MySQL“ pagrindiniuose ir pavaldiniuose mazguose

Ubuntu saugyklose yra MySQL versija 5.7. Norėdami pasinaudoti naujomis funkcijomis ir išvengti galimų problemų, turėtumėte įdiegti naujausią MySQL versiją. Bet pirmiausia atnaujinkime du mazgus naudodami šią apt komandą.

sudo apt update

Norėdami įdiegti MySQL abiejuose mazguose, vykdykite komandą.

sudo apt install mysql-server mysql-client

Tada atidarykite mysql konfigūracijos failą.

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

Pagrindiniame mazge slinkite ir raskite atributą bind-address, kaip parodyta toliau.

bind-address 	 =127.0.0.1

Pakeiskite grįžtamojo ryšio adresą, kad jis atitiktų pagrindinio mazgo IP adresą.

bind-address  	=10.128.0.28

Tada skiltyje [mysqld] nurodykite atributo server-id reikšmę. Pasirinktas numeris neturėtų atitikti jokio kito serverio ID numerio. Priskirkime reikšmę 1.

server-id	 =1

Pačiame konfigūracijos failo pabaigoje nukopijuokite ir įklijuokite toliau pateiktas eilutes.

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

Išeikite iš konfigūracijos failo ir iš naujo paleiskite „MySQL“ paslaugą, kad pakeitimai įsigaliotų pagrindiniame mazge.

sudo systemctl restart mysql

Norėdami patikrinti, ar MySQL serveris veikia taip, kaip tikėtasi, išduokite komandą.

sudo systemctl status mysql

Puikus! MySQL serveris veikia kaip tikėtasi!

2 veiksmas: sukurkite naują vartotoją replikacijai pagrindiniame mazge

Šiame skyriuje mes sukursime replikacijos naudotoją pagrindiniame mazge. Norėdami tai padaryti, prisijunkite prie MySQL serverio, kaip parodyta.

sudo mysql -u root -p

Tada tęskite ir vykdykite toliau pateiktas užklausas, kad sukurtumėte replikos vartotoją ir suteiktumėte prieigą replikacijos vergui. Nepamirškite naudoti savo IP adreso.

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';

Tada paleiskite šią komandą.

mysql> SHOW MASTER STATUS\G

Išvestis turėtų būti panaši į tai, ką matote toliau.

Būkite dėmesingi ir atkreipkite dėmesį į mysql-bin.000002 reikšmę ir pozicijos ID 1643. Šios reikšmės bus labai svarbios nustatant pagalbinį serverį.

3 veiksmas: sukonfigūruokite „MySQL Slave Server“.

Eikite į pavaldų serverį ir, kaip tai padarėme su pagrindiniu serveriu, atidarykite „MySQL“ konfigūracijos failą.

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

Kaip ir pagrindiniame serveryje, toliau redaguokite šias eilutes.

bind-address           = 10.128.0.29

Kaip ir anksčiau, skiltyje [mysqld] nurodykite atributo server-id reikšmę. Šį kartą pasirinkite kitą vertę. Pradėkime su 2.

server-id		=2 

Vėlgi, įklijuokite žemiau esančias eilutes pačioje konfigūracijos failo pabaigoje.

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

Tada iš naujo paleiskite MySQL serverį pagalbiniame mazge.

sudo systemctl restart mysql

Baigę išsaugokite ir išeikite iš teksto rengyklės

Tada prisijunkite prie „MySQL“ apvalkalo, kaip parodyta.

sudo mysql -u root -p

Atlikdami šį veiksmą turėsite atlikti tam tikrą konfigūraciją, kuri leistų pagrindiniam serveriui prisijungti prie pagrindinio serverio. Bet pirmiausia sustabdykite vergus, kaip parodyta.

mysql> STOP SLAVE; 

Jei norite leisti pagrindiniam serveriui kopijuoti pagrindinį serverį, paleiskite komandą.

mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='Saturn@1234', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;

Jei esate pakankamai suinteresuoti, pastebėsite, kad naudojome mysql-bin.00002 reikšmę ir pozicijos ID 1643, anksčiau pateiktą sukūrę vergo replikacijos vartotoją.

Be to, buvo naudojamas pagrindinio serverio IP adresas, replikacijos vartotojas ir slaptažodis.

Vėliau pradėkite temą, kurią anksčiau sustabdėte.

mysql> START SLAVE;

4 veiksmas: patikrinkite „MySQL Master-Slave“ replikaciją

Norėdami patikrinti, ar sąranka iš tikrųjų veikia taip, kaip tikėtasi, pagrindiniame kompiuteryje sukursime naują duomenų bazę ir patikrinsime, ar ji buvo pakartota MySQL Slave serveryje.

Prisijunkite prie „MySQL“ pagrindiniame serveryje.

sudo mysql -u root -p

Sukurkime bandomąją duomenų bazę. Tokiu atveju sukursime duomenų bazę, pavadintą replication_db.

mysql> CREATE DATABASE replication_db;

Dabar prisijunkite prie savo MySQL egzemplioriaus pagalbiniame serveryje.

sudo mysql -u root -p

Dabar surašykite duomenų bazes naudodami užklausą.

mysql> SHOW DATABASES;

Pastebėsite, kad duomenų bazė, kurią sukūrėte pagrindiniame, buvo pakartota slave. Nuostabu ! Jūsų „MySQL Master-slave“ replikacija veikia taip, kaip tikėtasi! Dabar galite būti tikri, kad gedimo atveju duomenų bazės failų kopijos bus perkeltos į pavaldų serverį.

Išvada

Šiame vadove sužinojote, kaip nustatyti MySQL Master-slave replikacijos sąranką Ubuntu 18.04.