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.