Giunsa ang Pag-setup sa MySQL Replication sa RHEL, Rocky ug AlmaLinux


Ang replikasyon sa datos mao ang proseso sa pagkopya sa imong data sa daghang mga server aron mapausbaw ang pagkaanaa sa datos ug mapausbaw ang pagkakasaligan ug pasundayag sa usa ka aplikasyon. Sa replikasyon sa MySQL, ang datos gikopya gikan sa usa ka database gikan sa master server ngadto sa ubang mga node sa tinuod nga panahon aron masiguro ang pagkamakanunayon sa datos ug usab sa paghatag og backup ug redundancy.

Sa kini nga giya, among gipakita kung giunsa nimo ma-set up ang MySQL (Master-Slave) nga replikasyon sa mga distribusyon nga nakabase sa RHEL sama sa CentOS, Fedora, Rocky Linux, ug AlmaLinux.

Busa, ania ang among MySQL replication lab setup.

MySQL Master - 10.128.0.14
MySQL Slave - 10.128.15.211

Magsugod na ta…

Lakang 1: I-install ang MySQL sa Master ug Slave Server

Magsugod kami pinaagi sa pag-install sa MySQL database sa master ug slave server.

$ sudo dnf install @mysql

Kung kompleto na ang pag-install, paghimo usa ka punto aron masugdan ang database server.

$ sudo systemctl start mysqld

Dayon himoa kini nga magsugod sa pagsugod sa sistema o sa pag-reboot.

$ sudo systemctl enable mysqld

Pagkahuman, kumpirmahi nga ang MySQL database server nagdagan sama sa gipakita:

$ sudo systemctl status mysqld

Lakang 2: I-secure ang MySQL sa Master ug Slave Server

Ang sunod nga lakang mao ang pagsiguro sa MySQL database sa master ug slave server. Kini tungod kay ang mga default setting walay kasegurohan ug nagpakita sa pipila ka mga lungag nga daling mapahimuslan sa mga hacker.

Busa, aron matig-a ang MySQL, padagana ang sugo:

$ sudo mysql_secure_installation

Una, kinahanglan nimo nga itakda ang MySQL root password. Siguruha nga maghatag usa ka lig-on nga password sa ugat, labing maayo nga adunay labaw sa 8 nga mga karakter nga usa ka pagsagol sa uppercase, lowercase, espesyal ug numeric nga mga karakter.

Alang sa nahabilin nga mga pag-aghat, i-type ang Y aron i-tweak ang database server sa girekomenda nga mga setting.

Kung nahuman na nimo ang pag-install ug pagpagahi sa MySQL sa master ug slave node, ang sunod mao ang pag-configure sa master node.

Lakang 3: I-configure ang Master Node (Server)

Ang sunod nga lakang mao ang pag-configure sa Master node ug hatagan ang access sa slave node niini. Una, kinahanglan natong usbon ang mysql-server.cnf configuration file.

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

Idugang ang mosunod nga mga linya ubos sa [mysqld] nga seksyon.

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

Kung nahuman na, i-save ang mga pagbag-o ug paggawas. Dayon i-restart ang MySQL server.

$ sudo sysemctl restart mysqld

Sunod, pag-log in sa MySQL shell.

$ sudo mysql -u root -p

Ipatuman ang mosunod nga mga sugo aron makahimo ug database user nga gamiton sa paggapos sa agalon ug ulipon para sa pagkopya.

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

Ibutang ang mga pagbag-o ug paggawas sa MySQL server.

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Tinoa ang kahimtang sa agalon.

mysql> SHOW MASTER STATUS\G

Timan-i ang Filename ug Posisyon. Kinahanglan nimo kini sa ulahi kung i-set up ang ulipon alang sa pagkopya. Sa among kaso, kami adunay filename nga mysql-bin.000001 ug Posisyon 1232.

Lakang 4: I-configure ang Slave Node (Server)

Karon, balik sa Slave node. Sa makausa pa, usba ang mysql-server.cnf configuration file.

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

Sama kaniadto, idikit kini nga mga linya ubos sa [mysqld] nga seksyon. Usba ang IP address aron mahiuyon sa IP sa ulipon. Usab, assign ug lain nga server-id. Dinhi among gihatag ang kantidad nga 2.

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

I-save ang mga pagbag-o ug paggawas sa file. Unya i-restart ang database server.

$ sudo systemctl restart mysqld

Aron ma-configure ang Slave node aron makopya gikan sa Master node, pag-log in sa MySQL server sa Slave.

$ sudo mysql -u root -p

Una ug labaw sa tanan, ihunong ang mga hilo sa pagkopya:

mysql> STOP SLAVE;

Dayon ipatuman ang mosunod nga sugo aron ma-configure ang slave node aron makopya ang mga database gikan sa agalon.

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;

Timan-i nga ang mga bandila sa MASTER_LOG_FILE ug MASTER_LOG_POS katumbas sa file ug mga kantidad sa Posisyon gikan sa Master node sa katapusan sa Lakang 1.

Ang MASTER_HOST, MASTER_USER, ug MASTER_PASSWORD katumbas sa Master IP address, ang replikasyon nga tiggamit, ug ang replikasyon nga user sa password matag usa.

Dayon sugdi ang mga thread sa pagkopya sa ulipon:

mysql> START SLAVE;

Lakang 4: Pagsulay sa MySQL Master-Slave Replication

Karon, aron masulayan kung ang pagkopya tali sa master ug slave node nagtrabaho, pag-log in sa MySQL database server sa master node:

$ sudo mysql -u root -p

Paghimo usa ka database sa pagsulay. Dinhi, ang among database sa pagsulay gitawag nga replication_db.

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

Karon, pangadto sa slave node, pag-log in sa MySQL server ug kumpirmahi nga ang replication_db database anaa. Gikan sa output sa ubos, atong makita nga ang database anaa. Kini ang pagkumpirma nga ang pagkopya nahitabo gikan sa Agalon hangtod sa node sa ulipon.

mysql> SHOW DATABASES;

Ug mao kana, malampuson namon nga gipakita kung giunsa nimo ma-set up ang usa ka MySQL master-slave replication model nga mahimo’g kopyahon ang mga database gikan sa master node hangtod sa slave node.