Kā iestatīt MySQL Master-Slave replikāciju Ubuntu 18.04


MySQL galvenā-verga replikācija ir procedūra, kas ļauj datu bāzes failus atkārtot vai kopēt vienā vai vairākos tīkla mezglos. Šī iestatīšana nodrošina dublēšanos un kļūdu toleranci tā, ka Master mezgla kļūmes gadījumā datu bāzes joprojām var atjaunot Slave mezglā. Tas lietotājiem dod mieru, ka visi nezudīs jebkurā gadījumā, jo datu bāzu kopiju joprojām var iegūt no cita servera.

Šajā rokasgrāmatā jūs uzzināsiet, kā veikt MySQL datu bāzes Master-slave replikāciju Ubuntu 18.04 sistēmā.

Uzstādīšanas laikā mums būs divi serveri, kuros darbojas Ubuntu 18.04 ar šādām IP adresēm.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Tagad ienirsim un redzēsim, kā mēs varam konfigurēt galveno-vergu replikācijas iestatījumus Ubuntu.

1. darbība: instalējiet MySQL galvenajos un vergu mezglos

Ubuntu krātuvēs ir MySQL 5.7 versija. Lai izmantotu visas jaunās iespējas un izvairītos no iespējamām problēmām, jums jāinstalē jaunākā MySQL versija. Bet vispirms atjaunināsim divus mezglus, izmantojot šādu komandu apt.

$ sudo apt update

Lai MySQL instalētu abos mezglos, izpildiet komandu.

$ sudo apt install mysql-server mysql-client

Pēc tam atveriet mysql konfigurācijas failu.

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

Galvenajā mezglā ritiniet un atrodiet atribūtu bind-address , kā parādīts zemāk.

bind-address 	 =127.0.0.1

Mainiet atgriezeniskās saites adresi, lai tā atbilstu galvenā mezgla IP adresei.

bind-address  	=10.128.0.28

Pēc tam sadaļā [mysqld] norādiet atribūta server-id vērtību. Jūsu izvēlētajam numuram nevajadzētu sakrist ar citu servera ID numuru. Piešķirsim vērtību 1 .

server-id	 =1

Konfigurācijas faila beigās nokopējiet un ielīmējiet zemāk redzamās rindas.

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

Aizveriet konfigurācijas failu un restartējiet MySQL pakalpojumu, lai izmaiņas stātos spēkā galvenajā mezglā.

$ sudo systemctl restart mysql

Lai pārbaudītu, vai MySQL serveris darbojas, kā paredzēts, izsniedziet komandu.

$ sudo systemctl status mysql

Lieliski! MySQL serveris darbojas kā paredzēts!

2. darbība: izveidojiet jaunu lietotāju replikācijai galvenajā mezglā

Šajā sadaļā mēs izveidosim replikācijas lietotāju galvenajā mezglā. Lai to panāktu, piesakieties MySQL serverī, kā parādīts.

$ sudo mysql -u root -p

Pēc tam turpiniet un izpildiet tālāk norādītos vaicājumus, lai izveidotu replikas lietotāju un piešķirtu piekļuvi replikācijas vergam. Atcerieties izmantot savu IP adresi.

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

Pēc tam palaidiet šādu komandu.

mysql> SHOW MASTER STATUS\G

Izejai jābūt līdzīgai tai, ko jūs varat redzēt zemāk.

Esiet piesardzīgs un ņemiet vērā vērtību mysql-bin.000002 un pozīcijas ID 1643 . Šīs vērtības būs izšķirošas, iestatot vergu serveri.

3. darbība: konfigurējiet MySQL Slave Server

Dodieties vergu serverī un, tāpat kā mēs to darījām ar galveno serveri, atveriet MySQL konfigurācijas failu.

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

Tāpat kā galvenais serveris, turpiniet rediģēt šādas rindas.

bind-address           = 10.128.0.29

Tāpat kā iepriekš, sadaļā [mysqld] norādiet atribūta server-id vērtību. Šoreiz atlasiet citu vērtību. Ejam ar 2 .

server-id		=2 

Atkal ielīmējiet zemāk esošās rindas konfigurācijas faila beigās.

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

Nākamais restartējiet MySQL serveri vergu mezglā.

$ sudo systemctl restart mysql

Kad tas izdarīts, saglabājiet un izejiet no teksta redaktora

Pēc tam piesakieties MySQL čaulā, kā parādīts.

$ sudo mysql -u root -p

Šajā solī jums būs jāveic dažas konfigurācijas, kas ļaus vergu serverim izveidot savienojumu ar galveno serveri. Bet vispirms pārtrauciet vergu pavedienus, kā parādīts.

mysql> STOP SLAVE; 

Lai ļautu vergu serverim atkārtot galveno serveri, palaidiet komandu.

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;

Ja esat pietiekami ieinteresēts, ievērosiet, ka mēs esam izmantojuši mysql-bin.00002 vērtību un pozīcijas ID 1643 , kas tika parādīta iepriekš pēc vergu replikācijas lietotāja izveides.

Turklāt ir izmantota galvenā servera IP adrese, replikācijas lietotājs un parole.

Vēlāk sāciet pavedienu, kuru iepriekš pārtraucāt.

mysql> START SLAVE;

4. darbība. Pārbaudiet MySQL Master-Slave replikāciju

Lai pārbaudītu, vai iestatīšana patiešām darbojas, kā paredzēts, mēs izveidosim jaunu galveno datu bāzi un pārbaudīsim, vai tā ir atkārtota MySQL Slave serverī.

Piesakieties MySQL Master serverī.

$ sudo mysql -u root -p

Izveidosim testa datu bāzi. Šajā gadījumā mēs izveidosim datubāzi ar nosaukumu replication_db.

mysql> CREATE DATABASE replication_db;

Tagad vergu serverī piesakieties savā MySQL instancē.

$ sudo mysql -u root -p

Tagad uzskaitiet datu bāzes, izmantojot vaicājumu.

mysql> SHOW DATABASES;

Jūs pamanīsit, ka uz kapteiņa izveidotā datu bāze ir atkārtota vergā. Satriecošs ! Jūsu MySQL Master-vergu replikācija darbojas kā paredzēts! Tagad varat būt drošs, ka kļūmes gadījumā datu bāzes failu kopijas tiks atkārtotas vergu serverī.

Šajā ceļvedī jūs uzzinājāt, kā iestatīt MySQL Master-slave replikācijas iestatīšanu operētājsistēmā Ubuntu 18.04.