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.