Kuidas seadistada MySQL-i alamserveri replikatsioon Ubuntu 18.04-s
MySQL-i-alluva replikatsioon on protseduur, mis võimaldab andmebaasi faile paljundada või kopeerida võrgu ühes või mitmes sõlmes. See seadistus tagab liiasuse ja tõrketaluvuse, nii et põhisõlme rikke korral saab andmebaasid endiselt taastada Slave sõlmes. See annab kasutajatele meelerahu, et kõik ei kao ühelgi juhul, kuna andmebaaside koopiaid saab siiski teisest serverist hankida.
Selles juhendis saate teada, kuidas teostada MySQL-i andmebaasi põhi- ja alamreplikatsiooni Ubuntu 18.04 süsteemis.
Seadistuses on meil kaks serverit, milles töötab Ubuntu 18.04 järgmiste IP-aadressidega.
Master server: 10.128.0.28 Slave server: 10.128.0.29
Sukeldume nüüd ja vaatame, kuidas saaksime konfigureerida Ubuntu Master-slave'i replikatsiooni seadistusi.
1. samm: installige MySQL põhi- ja alamsõlmesse
Ubuntu hoidlad sisaldavad MySQL-i versiooni 5.7. Uute funktsioonide kasutamiseks ja võimalike probleemide vältimiseks peaksite installima uusima MySQL-i versiooni. Kõigepealt värskendame kahte sõlme järgmise apt-käsu abil.
$ sudo apt update
MySQL-i installimiseks mõlemasse sõlme käivitage käsk.
$ sudo apt install mysql-server mysql-client
Järgmisena avage mysqli konfiguratsioonifail.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Kerige ja leidke põhisõlmes atribuut bind-address
, nagu allpool näidatud.
bind-address =127.0.0.1
Muutke tagasisideaadress, et see vastaks põhisõlme IP-aadressile.
bind-address =10.128.0.28
Seejärel määrake jaotises [mysqld]
atribuudi server-id
väärtus. Teie valitud number ei tohiks ühilduda ühegi teise serveri ID numbriga. Määrame väärtuse 1
.
server-id =1
Konfiguratsioonifaili lõpus kopeerige ja kleepige allolevad read.
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
Väljuge konfiguratsioonifailist ja taaskäivitage MySQL-teenus, et muudatused jõustuksid põhisõlmes.
$ sudo systemctl restart mysql
Et kontrollida, kas MySQL-server töötab ootuspäraselt, väljastage käsk.
$ sudo systemctl status mysql
Täiuslik! MySQL-server töötab ootuspäraselt!
2. samm: looge uus kasutaja põhisõlmes replikatsiooniks
Selles jaotises loome põhisõlmesse replikatsiooni kasutaja. Selle saavutamiseks logige MySQL-i serverisse sisse nagu näidatud.
$ sudo mysql -u root -p
Järgmisena jätkake ja täitke allpool olevad päringud, et luua koopia kasutaja ja anda juurdepääs replikatsiooni alamale. Ärge unustage kasutada oma IP-aadressi.
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';
Järgmisena käivitage järgmine käsk.
mysql> SHOW MASTER STATUS\G
Väljund peaks olema sarnane sellega, mida näete allpool.
Ole tähelepanelik ja pane tähele väärtus mysql-bin.000002
ja positsiooni ID 1643
. Need väärtused on orjaserveri seadistamisel üliolulised.
3. samm: konfigureerige MySQL-i allserver
Minge välja orjaserverisse ja avage MySQL-i konfiguratsioonifail, nagu me tegime Master-serveriga.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Täpselt nagu põhiserver, jätkake järgmiste ridade muutmist.
bind-address = 10.128.0.29
Nagu varemgi, määrake jaotises [mysqld]
atribuudi server-id
väärtus. Valige seekord mõni muu väärtus. Läheme koos koodiga 2
.
server-id =2
Jällegi kleepige allolevad read konfiguratsioonifaili kõige lõppu.
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
Järgmisena taaskäivitage MySQL-server orjasõlmes.
$ sudo systemctl restart mysql
Kui see on tehtud, salvestage ja eemaldage tekstiredaktor
Järgmisena logige sisse MySQL-i kestale, nagu näidatud.
$ sudo mysql -u root -p
Selles etapis peate tegema mõned konfiguratsioonid, mis võimaldavad orjaserveril ühendada põhiserveriga. Kuid kõigepealt peatage orjaniidid nagu näidatud.
mysql> STOP SLAVE;
Selleks et lubada alamserveril põhiserverit kopeerida, käivitage käsk.
mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email ', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;
Kui olete piisavalt innukas, märkate, et me kasutasime varem orja replikatsiooni kasutaja loomise järel kuvatud väärtust mysql-bin.00002
ja asukoha ID 1643
.
Lisaks on kasutatud põhiserveri IP-aadressi, replikatsiooni kasutajat ja parooli.
Hiljem alustage varem peatatud lõime.
mysql> START SLAVE;
4. samm: kontrollige MySQL-i alam-alluva replikatsiooni
Kontrollimaks, kas seadistamine töötab tõepoolest ootuspäraselt, loome meistrile uue andmebaasi ja kontrollime, kas seda on MySQL Slave'i serveris korratud.
Logige MySQL-i sisse Master-serveris.
$ sudo mysql -u root -p
Loome testandmebaasi. Sel juhul loome andmebaasi nimega replication_db.
mysql> CREATE DATABASE replication_db;
Nüüd logige sisse oma MySQL-i eksemplari orjaserveris.
$ sudo mysql -u root -p
Nüüd loetlege päringu abil andmebaasid.
mysql> SHOW DATABASES;
Märkate, et masteril loodud andmebaas on alamkopeeritud. Vinge ! Teie MySQL ülema-orja replikatsioon töötab ootuspäraselt! Nüüd võite olla kindel, et tõrke korral kopeeritakse andmebaasifailide koopiad orjaserverisse.
Selles juhendis õppisite MySQL Master-slave'i replikatsiooni seadistamist Ubuntu 18.04-s.