Jinsi ya Kusanidi Replication ya MySQL katika RHEL, Rocky na AlmaLinux


Urudiaji wa data ni mchakato wa kunakili data yako kwenye seva nyingi ili kuboresha upatikanaji wa data na kuimarisha uaminifu na utendakazi wa programu. Katika urudufishaji wa MySQL, data inanakiliwa kutoka kwa hifadhidata kutoka kwa seva kuu hadi nodi zingine kwa wakati halisi ili kuhakikisha uthabiti wa data na pia kutoa nakala rudufu na upungufu.

Katika mwongozo huu, tunaonyesha jinsi unavyoweza kusanidi urudufishaji wa MySQL (Master-Slave) katika usambazaji unaotegemea RHEL kama vile CentOS, Fedora, Rocky Linux, na AlmaLinux.

Kwa hivyo, hapa kuna usanidi wetu wa maabara ya urudufishaji wa MySQL.

MySQL Master - 10.128.0.14
MySQL Slave - 10.128.15.211

Tuanze…

Hatua ya 1: Sakinisha MySQL kwenye Seva ya Mwalimu na Mtumwa

Tutaanza kwa kusakinisha hifadhidata ya MySQL kwenye seva kuu na za watumwa.

$ sudo dnf install @mysql

Mara tu usakinishaji ukamilika, fanya hatua ya kuanza seva ya hifadhidata.

$ sudo systemctl start mysqld

Kisha uwashe ili kuanza kuanzisha mfumo au ukiwasha upya.

$ sudo systemctl enable mysqld

Baada ya hapo, thibitisha kuwa seva ya hifadhidata ya MySQL inafanya kazi kama inavyoonyeshwa:

$ sudo systemctl status mysqld

Hatua ya 2: Salama MySQL kwenye Seva ya Mwalimu na Mtumwa

Hatua inayofuata ni kupata hifadhidata ya MySQL kwenye seva kuu na za watumwa. Hii ni kwa sababu mipangilio chaguo-msingi si salama na inatoa mianya fulani ambayo inaweza kutumiwa na wavamizi kwa urahisi.

Kwa hivyo, kufanya ugumu wa MySQL, endesha amri:

$ sudo mysql_secure_installation

Kwanza, utahitajika kuweka nenosiri la mizizi ya MySQL. Hakikisha umetoa nenosiri dhabiti la mzizi, ikiwezekana liwe na herufi zaidi ya 8 ambazo ni mchanganyiko wa herufi kubwa, ndogo, maalum na nambari.

Kwa vidokezo vilivyosalia, andika Y ili kurekebisha seva ya hifadhidata kwa mipangilio inayopendekezwa.

Mara tu unapomaliza kusanikisha na ugumu wa MySQL kwenye nodi ya bwana na mtumwa, inayofuata ni kusanidi nodi kuu.

Hatua ya 3: Sanidi Nodi Mkuu (Seva)

Hatua inayofuata ni kusanidi nodi ya Mwalimu na kutoa ufikiaji wa nodi ya mtumwa kwake. Kwanza, tunahitaji kuhariri faili ya usanidi ya mysql-server.cnf.

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

Ongeza mistari ifuatayo chini ya [mysqld] sehemu.

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

Baada ya kumaliza, hifadhi mabadiliko na uondoke. Kisha anzisha tena seva ya MySQL.

$ sudo sysemctl restart mysqld

Ifuatayo, ingia kwenye ganda la MySQL.

$ sudo mysql -u root -p

Tekeleza amri zifuatazo ili kuunda mtumiaji wa hifadhidata ambayo itatumika kumfunga bwana na mtumwa kwa ajili ya kurudiwa.

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

Tumia mabadiliko na uondoke kwenye seva ya MySQL.

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Thibitisha hali ya bwana.

mysql> SHOW MASTER STATUS\G

Zingatia Jina la Faili na Nafasi. Utahitaji hii baadaye wakati wa kusanidi mtumwa kwa replication. Kwa upande wetu, tunayo jina la faili kama mysql-bin.000001 na Nafasi 1232.

Hatua ya 4: Sanidi Njia ya Mtumwa (Seva)

Sasa, rudi kwenye nodi ya Mtumwa. Kwa mara nyingine tena, hariri faili ya usanidi ya mysql-server.cnf.

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

Kama hapo awali, bandika mistari hii chini ya sehemu ya [mysqld]. Badilisha anwani ya IP ili ilingane na IP ya mtumwa. Pia, toa kitambulisho tofauti cha seva. Hapa tumeipa thamani ya 2.

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

Hifadhi mabadiliko na uondoke kwenye faili. Kisha anzisha tena seva ya hifadhidata.

$ sudo systemctl restart mysqld

Ili kusanidi nodi ya Mtumwa ili kurudia kutoka kwa nodi ya Mwalimu, ingia kwenye seva ya MySQL ya Mtumwa.

$ sudo mysql -u root -p

Kwanza kabisa, acha nyuzi za kurudia:

mysql> STOP SLAVE;

Kisha tekeleza amri ifuatayo ili kusanidi nodi ya watumwa ili kuiga hifadhidata kutoka kwa bwana.

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;

Kumbuka kuwa alama za MASTER_LOG_FILE na MASTER_LOG_POS zinalingana na thamani za faili na Nafasi kutoka kwa nodi Kuu mwishoni mwa Hatua ya 1.

MASTER_HOST, MASTER_USER, na MASTER_PASSWORD yanalingana na Anwani Kuu ya IP, mtumiaji wa kunakili, na nenosiri la mtumiaji wa kurudia mtawalia.

Kisha anza nyuzi za kurudia mtumwa:

mysql> START SLAVE;

Hatua ya 4: Kujaribu Kurudiarudia kwa MySQL Master-Slave

Sasa, ili kujaribu ikiwa urudufishaji kati ya nodi ya bwana na mtumwa inafanya kazi, ingia kwenye seva ya hifadhidata ya MySQL kwenye nodi kuu:

$ sudo mysql -u root -p

Unda hifadhidata ya majaribio. Hapa, hifadhidata yetu ya majaribio inaitwa replication_db.

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

Sasa, nenda kwenye nodi ya watumwa, ingia kwenye seva ya MySQL na uthibitishe kuwa hifadhidata ya replication_db iko. Kutoka kwa matokeo hapa chini, tunaweza kuona kwamba hifadhidata iko. Huu ni uthibitisho kwamba urudufishaji umefanyika kutoka kwa Bwana hadi kwa nodi ya mtumwa.

mysql> SHOW DATABASES;

Na ndivyo ilivyo, tumeonyesha kwa ufanisi jinsi unavyoweza kusanidi kielelezo cha urudufishaji wa watumwa wa MySQL ambao unaweza kunakili hifadhidata kutoka kwa nodi kuu hadi nodi ya watumwa.