Kif Issettja Replikazzjoni MySQL f'RHEL, Rocky u AlmaLinux


Ir-replikazzjoni tad-dejta hija l-proċess li tikkopja d-dejta tiegħek fuq servers multipli biex ittejjeb id-disponibbiltà tad-dejta u ttejjeb l-affidabbiltà u l-prestazzjoni ta’ applikazzjoni. Fir-replikazzjoni MySQL, id-dejta tiġi kkupjata minn database mis-server prinċipali għal nodi oħra f'ħin reali biex tiġi żgurata l-konsistenza tad-dejta u wkoll biex tipprovdi backup u redundancy.

F'din il-gwida, aħna nuru kif tista 'twaqqaf replikazzjoni MySQL (Master-Slave) f'distribuzzjonijiet ibbażati fuq RHEL bħal CentOS, Fedora, Rocky Linux, u AlmaLinux.

Allura, hawnhekk hija s-setup tagħna tal-laboratorju tar-replikazzjoni MySQL.

MySQL Master - 10.128.0.14
MySQL Slave - 10.128.15.211

Ejja nibdew…

Pass 1: Installa MySQL fuq Master u Slave Server

Nibdew billi ninstallaw id-database MySQL kemm fuq is-servers master kif ukoll fuq is-servers slave.

$ sudo dnf install @mysql

Ladarba l-installazzjoni titlesta, agħmel punt biex tibda s-server tad-database.

$ sudo systemctl start mysqld

Imbagħad ppermettiha tibda l-istartjar tas-sistema jew malli terġa 'tibda.

$ sudo systemctl enable mysqld

Minn hemm 'il quddiem, ikkonferma li s-server tad-database MySQL qed jaħdem kif muri:

$ sudo systemctl status mysqld

Pass 2: Sikura MySQL fuq Master u Slave Server

Il-pass li jmiss huwa li tiżgura d-database MySQL kemm fuq is-servers master kif ukoll fuq is-servers slave. Dan għaliex is-settings awtomatiċi mhumiex siguri u jippreżentaw xi lakuni li jistgħu faċilment jiġu sfruttati mill-hackers.

Allura, biex tibbies MySQL, mexxi l-kmand:

$ sudo mysql_secure_installation

L-ewwel, inti tkun mitlub li tissettja l-password għerq MySQL. Kun żgur li tipprovdi password għerq b'saħħitha, preferibbilment b'aktar minn 8 karattri li huma taħlita ta' karattri kbar, żgħar, speċjali u numeriċi.

Għall-promps li jifdal, ittajpja Y biex ttejjeb is-server tad-database għas-settings rakkomandati.

Ladarba tkun spiċċajt l-installazzjoni u t-twebbis tal-MySQL fuq in-node master u slave, dak li jmiss huwa li jiġi kkonfigurat in-node master.

Pass 3: Ikkonfigura n-Node Master (Server)

Il-pass li jmiss huwa li jiġi kkonfigurat in-node Master u tagħti aċċess għaliha lin-nodu slave. L-ewwel, għandna bżonn neditjaw il-fajl tal-konfigurazzjoni mysql-server.cnf.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Żid il-linji li ġejjin taħt it-taqsima [mysqld].

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

Ladarba jsir, issalva l-bidliet u oħroġ. Imbagħad ibda mill-ġdid is-server MySQL.

$ sudo sysemctl restart mysqld

Sussegwentement, idħol fil-qoxra MySQL.

$ sudo mysql -u root -p

Esegwi l-kmandi li ġejjin biex toħloq utent tad-database li se jintuża biex jorbot lill-kaptan u l-iskjav għar-replikazzjoni.

mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFIED BY '[email ';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'10.128.15.211';

Applika l-bidliet u oħroġ mis-server MySQL.

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Ivverifika l-istatus tal-kaptan.

mysql> SHOW MASTER STATUS\G

Ħu nota tal-Isem tal-Fajl u l-Pożizzjoni. Ikollok bżonn dan aktar tard meta twaqqaf l-iskjav għar-replikazzjoni. Fil-każ tagħna, għandna l-isem tal-fajl bħala mysql-bin.000001 u Pożizzjoni 1232.

Pass 4: Ikkonfigura n-Node Slav (Server)

Issa, ras lura għan-node Slav. Għal darb'oħra, editja l-fajl tal-konfigurazzjoni mysql-server.cnf.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Bħal qabel, waħħal dawn il-linji taħt it-taqsima [mysqld]. Ibdel l-indirizz IP biex jikkorrispondi mal-IP tal-iskjav. Ukoll, assenja server-id differenti. Hawnhekk għamilna l-valur ta’ 2.

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

Issejvja l-bidliet u oħroġ mill-fajl. Imbagħad erġa ibda s-server tad-database.

$ sudo systemctl restart mysqld

Biex tikkonfigura n-node Slave biex tirreplika min-nodu Master, idħol fis-server MySQL ta 'Slave.

$ sudo mysql -u root -p

L-ewwel u qabel kollox, waqqaf il-ħjut tar-replikazzjoni:

mysql> STOP SLAVE;

Imbagħad tesegwixxi l-kmand li ġej biex tikkonfigura n-node slave biex tirreplika databases mill-kaptan.

mysql> CHANGE MASTER TO
     MASTER_HOST='10.128.0.14' ,
     MASTER_USER='replica' ,
     MASTER_PASSWORD='[email ' ,
     MASTER_LOG_FILE='mysql-bin.000001' ,
     MASTER_LOG_POS=1232;

Innota li l-bnadar MASTER_LOG_FILE u MASTER_LOG_POS jikkorrispondu mal-valuri tal-fajl u tal-Pożizzjoni min-node Master fl-aħħar tal-Pass 1.

Il-MASTER_HOST, MASTER_USER, u MASTER_PASSWORD jikkorrispondu għall-indirizz IP Master, l-utent tar-replikazzjoni, u l-password tal-utent tar-replikazzjoni rispettivament.

Imbagħad ibda l-ħjut tar-replikazzjoni tal-iskjavi:

mysql> START SLAVE;

Pass 4: Ittestjar MySQL Master-Slave Replikazzjoni

Issa, biex tittestja jekk ir-replikazzjoni bejn in-node master u slave tkunx qed taħdem, idħol fis-server tad-database MySQL fuq in-node prinċipali:

$ sudo mysql -u root -p

Oħloq database tat-test. Hawnhekk, id-database tat-test tagħna tissejjaħ replication_db.

mysql> CREATE DATABASE replication_db;
Verify the existence of the database.
mysql> SHOW DATABASES;

Issa, ras lejn in-node tal-iskjavi, idħol fis-server MySQL u kkonferma li d-database replication_db hija preżenti. Mill-output hawn taħt, nistgħu naraw li d-database hija preżenti. Din hija konferma li seħħet replikazzjoni mill-Master għan-node slave.

mysql> SHOW DATABASES;

U dan hu, urejna b'suċċess kif tista 'twaqqaf mudell ta' replikazzjoni ta 'master-slave MySQL li jista' jirreplika databases min-nodu prinċipali għan-nodu slave.