Otu esi edozi MySQL replication na RHEL, Rocky na AlmaLinux


Ntugharị data bụ usoro nke iṅomi data gị n'ofe ọtụtụ sava iji kwalite nnweta data wee kwalite ntụkwasị obi na arụmọrụ nke ngwa. Na nsụgharị MySQL, a na-eṅomi data site na nchekwa data sitere na ihe nkesa nna ukwu gaa na ọnụ ụzọ ndị ọzọ ozugbo iji hụ na data na-agbanwe agbanwe yana inye nkwado ndabere na mpaghara ọrụ.

N'ime ntuziaka a, anyị na-egosi otu ị nwere ike isi melite MySQL (Master-Slave) ngbanwe na nkesa dabere na RHEL dị ka CentOS, Fedora, Rocky Linux, na AlmaLinux.

Yabụ, ebe a bụ nhazi ụlọ nyocha nke MySQL.

MySQL Master - 10.128.0.14
MySQL Slave - 10.128.15.211

Ka anyị bido…

Kwụpụ 1: Wụnye MySQL na Master na Server Server

Anyị ga-amalite site na ịwụnye MySQL nchekwa data na ma nna ukwu na ohu sava.

$ sudo dnf install @mysql

Ozugbo echichi mechara, mee ka ị malite ihe nkesa nchekwa data.

$ sudo systemctl start mysqld

Mgbe ahụ mee ka ọ malite ịmalite mmalite ma ọ bụ malitegharịa.

$ sudo systemctl enable mysqld

Mgbe nke ahụ gasịrị, gosi na ihe nkesa nchekwa data MySQL na-agba ọsọ dị ka egosiri:

$ sudo systemctl status mysqld

Kwụpụ 2: Chekwaa MySQL na Master na Server Server

Nzọụkwụ ọzọ bụ idobe nchekwa data MySQL na sava nna ukwu na ohu. Nke a bụ n'ihi na ntọala ndabara enweghị nchebe ma na-eweta ụfọdụ loopholes nke ndị hackers nwere ike irigbu ya ngwa ngwa.

Yabụ, iji mee ka MySQL sie ike, gbaa iwu a:

$ sudo mysql_secure_installation

Nke mbụ, a ga-achọrọ ka ịtọọ paswọọdụ mgbọrọgwụ MySQL. Jide n'aka na ịnye okwuntughe mgbọrọgwụ siri ike, ọkachamma nwere ihe karịrị mkpụrụedemede 8 bụ ngwakọta nke mkpụrụedemede ukwu, obere obere, pụrụ iche na ọnụọgụ.

Maka mkpali ndị fọdụrụ, pịnye na Y ka tweak nkesa nchekwa data na ntọala akwadoro.

Ozugbo ịmechara wụnye na hardening MySQL na nna ukwu na ohu node, na-esote bụ hazi master node.

Kwụpụ 3: Hazie Node Master (Server)

Nzọụkwụ ọzọ bụ ịhazi ọnụ ụlọ Nna-ukwu wee nye ọnụ ohu ohere ịbanye na ya. Nke mbụ, anyị kwesịrị idezi faịlụ nhazi mysql-server.cnf.

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

Tinye ahịrị ndị a n'okpuru ngalaba [mysqld].

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

Ozugbo emechara, chekwaa mgbanwe wee pụọ. Mgbe ahụ malitegharịa ihe nkesa MySQL.

$ sudo sysemctl restart mysqld

Ọzọ, banye na MySQL shell.

$ sudo mysql -u root -p

Mezue iwu ndị a iji mepụta onye ọrụ nchekwa data nke a ga-eji kechie nna ukwu na ohu maka mmegharị.

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

Tinye mgbanwe ndị ahụ wee pụọ na ihe nkesa MySQL.

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Nyochaa ọkwa nke nna ukwu.

mysql> SHOW MASTER STATUS\G

Deba aha faịlụ na ọnọdụ. Ị ga-achọ nke a ma emechaa mgbe ị na-edozi ohu ahụ maka mmụgharị. N'ọnọdụ anyị, anyị nwere aha faịlụ dị ka mysql-bin.000001 na ọnọdụ 1232.

Kwụpụ 4: Hazie Node ohu (Server)

Ugbu a, laghachi azụ na ọnụ ohu. Ọzọ, dezie faịlụ nhazi mysql-server.cnf.

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

Dịka ọ dị na mbụ, mado ahịrị ndị a n'okpuru ngalaba [mysqld]. Gbanwee adreesị IP ka ọ dabara na IP nke ohu ahụ. Ọzọkwa, kenye ihe nkesa-ID dị iche. N'ebe a, anyị ekenyela ya uru nke 2.

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

Chekwaa mgbanwe ndị ahụ wee pụọ na faịlụ ahụ. Mgbe ahụ malitegharịa ihe nkesa nchekwa data.

$ sudo systemctl restart mysqld

Iji hazie ọnụ ohu iji megharịa site na Master node, banye na sava MySQL nke Slav.

$ sudo mysql -u root -p

Nke mbụ, kwụsị eriri mmegharị:

mysql> STOP SLAVE;

Mezie iwu na-esonụ ka hazie ọnụ ohu iji megharịa ọdụ data sitere na nna ukwu.

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;

Rịba ama na ọkọlọtọ MASTER_LOG_FILE na MASTER_LOG_POS dabara na faịlụ na ụkpụrụ ọnọdụ sitere na oghere Master na njedebe nke Nzọụkwụ 1.

MASTER_HOST, MASTER_USER, na MASTER_PASSWORD kwekọrọ na adreesị IP Nna-ukwu, onye na-emegharịgharị ya, yana okwuntughe onye na-emegharị ya n'otu n'otu.

Mgbe ahụ malite eriri mmegharị ohu:

mysql> START SLAVE;

Kwụpụ 4: Na-anwale nsụgharị MySQL Master-Slave

Ugbu a, iji nwalee ma mmegharị n'etiti nna ukwu na ọnụ ohu na-arụ ọrụ, banye na MySQL nchekwa data nkesa na ọnụ ụlọ:

$ sudo mysql -u root -p

Mepụta nchekwa data ule. N'ebe a, a na-akpọ nchekwa data ule anyị replication_db.

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

Ugbu a, gaba na oghere ohu, banye na sava MySQL wee gosi na nchekwa data replication_db dị. Site na mmepụta n'okpuru, anyị nwere ike ịhụ na nchekwa data dị. Nke a bụ nkwenye na mmegharị esitela n'aka Nna-ukwu ruo n'ọnụ ohu.

mysql> SHOW DATABASES;

Ma nke ahụ bụ ya, anyị egosipụtala nke ọma otu ị nwere ike isi melite MySQL master-ohu replication model nke nwere ike ịmegharị ọdụ data site na ọnụ ụlọ na oghere ohu.