MySQL köpeltmesini RHEL, Rocky we AlmaLinux-da nädip sazlamaly


Maglumatlaryň köpeldilmegi, maglumatlaryň elýeterliligini ýokarlandyrmak we bir programmanyň ygtybarlylygyny we öndürijiligini ýokarlandyrmak üçin maglumatlaryňyzy birnäçe serwerde göçürmek prosesi. MySQL köpeltmekde maglumatlaryň yzygiderliligini üpjün etmek, şeýle hem ätiýaçlyk we artykmaçlygy üpjün etmek üçin maglumatlar esasy serwerden beýleki düwünlere maglumatlar bazasyndan göçürilýär.

Bu gollanmada, CentOS, Fedora, Rocky Linux we AlmaLinux ýaly RHEL esasly paýlamalarda MySQL (Master-Slave) köpeltmesini nädip gurup boljakdygyny görkezýäris.

Şeýlelikde, ine, MySQL köpeltmek laboratoriýamyz.

MySQL Master - 10.128.0.14
MySQL Slave - 10.128.15.211

Geliň başlalyň…

1-nji ädim: Master we gul serwerine MySQL guruň

Esasy we gul serwerlerinde MySQL maglumat bazasyny gurmak bilen başlarys.

$ sudo dnf install @mysql

Gurmak tamamlanandan soň, maglumat bazasynyň serwerini açmak üçin bir nokat goýuň.

$ sudo systemctl start mysqld

Soňra ulgamy işe başlamaga ýa-da gaýtadan açmaga başlaň.

$ sudo systemctl enable mysqld

Ondan soň, MySQL maglumat bazasynyň serweriniň görkezilişi ýaly işleýändigini tassyklaň:

$ sudo systemctl status mysqld

2-nji ädim: Master we gul serwerinde MySQL-i ygtybarly ediň

Indiki ädim, esasy we gul serwerlerinde MySQL maglumat bazasyny goramak. Sebäbi deslapky sazlamalar ygtybarly däl we hakerler tarapyndan aňsatlyk bilen ulanylyp bilinjek käbir kemçilikleri görkezýär.

Şeýlelik bilen, MySQL-i gatylaşdyrmak üçin buýrugy işlediň:

$ sudo mysql_secure_installation

Ilki bilen MySQL kök parolyny bellemeli bolarsyňyz. Baş harp, kiçi harp, ýörite we san nyşanlarynyň garyndysy bolan 8-den gowrak simwol bilen güýçli kök parolyny üpjün etmegi unutmaň.

Galan teklipler üçin maglumat bazasynyň serwerini maslahat berilýän sazlamalara üýtgetmek üçin Y ýazyň.

Ussat we gul düwünine MySQL-y gurnamagy we gatylaşdyrmagy gutaranyňyzdan soň, esasy düwün düzmekdir.

3-nji ädim: Esasy düwün (Serwer) sazlaň

Indiki ädim, Master düwünini düzmek we gul düwünine oňa ygtyýar bermek. Ilki bilen mysql-server.cnf konfigurasiýa faýlyny redaktirlemeli.

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

[mysqld] bölüminiň aşagyna aşakdaky setirleri goşuň.

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

Bir gezek ýerine ýetirilenden soň, üýtgeşmeleri saklaň we çykyň. Soňra MySQL serwerini täzeden açyň.

$ sudo sysemctl restart mysqld

Ondan soň MySQL gabygyna giriň.

$ sudo mysql -u root -p

Ussat we gul köpeltmek üçin ulanyljak maglumat bazasy ulanyjysyny döretmek üçin aşakdaky buýruklary ýerine ýetiriň.

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

Üýtgeşmeleri ulanyň we MySQL serwerinden çykyň.

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Ussanyň ýagdaýyny barlaň.

mysql> SHOW MASTER STATUS\G

Faýlyň adyna we ýerleşişine üns beriň. Gul köpeltmek üçin gurlanda, size bu zerur bolar. Biziň ýagdaýymyzda, faýlyň ady mysql-bin.000001 we pozisiýa 1232.

4-nji ädim: Gul düwünini sazlaň (Serwer)

Indi, Gul düwünine dolan. Mysql-server.cnf konfigurasiýa faýlyny ýene bir gezek redaktirläň.

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

Öňküsi ýaly bu setirleri [mysqld] bölüminiň aşagyna goýuň. Guluň IP-sine laýyk IP adresini üýtgediň. Şeýle hem, başga bir serwer-id belläň. Bu ýerde oňa 2 bahasyny belledik.

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

Üýtgeşmeleri ýazdyryň we faýldan çykyň. Soňra maglumat bazasynyň serwerini täzeden açyň.

$ sudo systemctl restart mysqld

Gul düwünini Master düwüninden köpeltmek üçin guluň MySQL serwerine giriň.

$ sudo mysql -u root -p

Ilki bilen köpeltmek sapaklaryny duruzyň:

mysql> STOP SLAVE;

Soňra ussadan maglumat bazalaryny köpeltmek üçin gul düwünini düzmek üçin aşakdaky buýrugy ýerine ýetiriň.

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;

MASTER_LOG_FILE we MASTER_LOG_POS baýdaklarynyň 1-nji ädimiň ahyrynda Master düwüninden faýl we Positionerleşiş bahalaryna laýyk gelýändigini ýadyňyzdan çykarmaň.

MASTER_HOST, MASTER_USER we MASTER_PASSWORD degişlilikde Master IP adresine, köpeltmek ulanyjysyna we köpeltmek ulanyjynyň parolyna laýyk gelýär.

Soňra gul köpeltmek sapaklaryna başlaň:

mysql> START SLAVE;

4-nji ädim: MySQL ussat-gul köpeltmesini barlamak

Indi ussa bilen gul düwüniniň arasynda köpeltmegiň işleýändigini ýa-da ýokdugyny barlamak üçin baş düwündäki MySQL maglumat bazasynyň serwerine giriň:

$ sudo mysql -u root -p

Synag bazasyny dörediň. Bu ýerde synag maglumatlar bazamyza replication_db diýilýär.

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

Indi gul düwünine geçiň, MySQL serwerine giriň we replication_db maglumat bazasynyň bardygyny tassyklaň. Aşakdaky çykyşdan maglumatlar bazasynyň bardygyny görüp bileris. Bu köpeltmegiň Ussatdan gul düwünine çenli bolandygyny tassyklaýar.

mysql> SHOW DATABASES;

Ine, şeýdip, esasy düwünden gul düwünine maglumat bazalaryny köpeldip bilýän MySQL master-gul köpeltmek modelini nädip gurup boljakdygyny üstünlikli görkezdik.