Wéi Setup MySQL Replikatioun an RHEL, Rocky an AlmaLinux


Datereplikatioun ass de Prozess fir Är Donnéeën iwwer verschidde Serveren ze kopéieren fir Datenverfügbarkeet ze verbesseren an d'Zouverlässegkeet an d'Leeschtung vun enger Applikatioun ze verbesseren. An MySQL Replikatioun ginn Daten aus enger Datebank vum Master Server an aner Wirbelen an Echtzäit kopéiert fir d'Konsistenz vun den Donnéeën ze garantéieren an och fir Backup a Redundanz ze bidden.

An dësem Guide weisen mir wéi Dir MySQL (Master-Slave) Replikatioun a RHEL-baséiert Verdeelunge wéi CentOS, Fedora, Rocky Linux, an AlmaLinux opstellt.

Also, hei ass eise MySQL Replikatioun Labo Setup.

MySQL Master - 10.128.0.14
MySQL Slave - 10.128.15.211

Loosst eis ufänken ...

Schrëtt 1: Installéiert MySQL op Master a Sklave Server

Mir fänken un mat der Installatioun vun der MySQL Datebank souwuel op de Master- a Sklave-Server.

$ sudo dnf install @mysql

Wann d'Installatioun fäerdeg ass, maacht e Punkt fir den Datebankserver unzefänken.

$ sudo systemctl start mysqld

Dann aktivéiert et fir mam Systemstart ze starten oder beim Neistart.

$ sudo systemctl enable mysqld

Duerno bestätegt datt de MySQL Datebankserver leeft wéi gewisen:

$ sudo systemctl status mysqld

Schrëtt 2: Séchert MySQL op Master a Sklave Server

De nächste Schrëtt ass d'MySQL Datebank op béide Master a Sklave Server ze sécheren. Dëst ass well d'Standardastellungen onsécher sinn an e puer Schleifen presentéieren déi einfach vun Hacker exploitéiert kënne ginn.

Also, fir MySQL ze härten, fuert de Kommando:

$ sudo mysql_secure_installation

Als éischt musst Dir de MySQL Root Passwuert setzen. Gitt sécher datt Dir e staarkt Root-Passwuert ubitt, am léifsten mat méi wéi 8 Zeechen, déi eng Mëschung aus Grouss-, Kleng-, Spezial- an numeresch Zeechen sinn.

Fir déi verbleiwen Ufroen, gitt Y fir den Datebankserver op d'recommandéiert Astellungen unzepassen.

Wann Dir fäerdeg sidd MySQL op de Master- a Sklavennode z'installéieren an ze härten, ass dat nächst de Master Node ze konfiguréieren.

Schrëtt 3: Konfiguréieren de Master Node (Server)

De nächste Schrëtt ass de Master Node ze konfiguréieren an de Sklavennode Zougang zu deem ze ginn. Als éischt musse mir d'mysql-server.cnf Konfiguratiounsdatei änneren.

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

Füügt déi folgend Zeilen ënner der Rubrik [mysqld].

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

Eemol gemaach, späichert d'Ännerungen a gitt eraus. Da starten de MySQL Server nei.

$ sudo sysemctl restart mysqld

Als nächst loggt Iech op MySQL Shell.

$ sudo mysql -u root -p

Fëllt déi folgend Kommandoen aus fir en Datebank Benotzer ze kreéieren dee benotzt gëtt fir de Master a Sklave fir Replikatioun ze binden.

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

Fëllt d'Ännerungen un a gitt de MySQL Server aus.

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Z'iwwerpréiwen de Status vun der Meeschtesch.

mysql> SHOW MASTER STATUS\G

Notéiert de Dateinumm a Positioun. Dir braucht dëst méi spéit wann Dir de Sklave fir Replikatioun opstellt. An eisem Fall hu mir den Dateinumm als mysql-bin.000001 a Positioun 1232.

Schrëtt 4: Konfiguréieren de Sklave Node (Server)

Elo, gitt zréck op de Sklave Node. Nach eng Kéier, änneren d'mysql-server.cnf Konfiguratiounsdatei.

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

Wéi virdrun, paste dës Zeilen ënner der Rubrik [mysqld]. Ännert d'IP Adress fir dem Sklave säin IP ze entspriechen. Gitt och eng aner Server-ID zou. Hei hu mir et de Wäert vun 2 zougewisen.

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

Späichert d'Ännerungen a gitt d'Datei aus. Da starten den Datebankserver nei.

$ sudo systemctl restart mysqld

Fir de Sklave Node ze konfiguréieren fir aus dem Master Node ze replizéieren, aloggen op de MySQL Server vum Sklave.

$ sudo mysql -u root -p

Éischtens a virun allem, stoppen d'Replikatiouns thread:

mysql> STOP SLAVE;

Fuert dann de folgende Kommando aus fir de Sklavennode ze konfiguréieren fir Datenbanken vum Master ze replizéieren.

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;

Notéiert datt d'MASTER_LOG_FILE an MASTER_LOG_POS Fändelen dem Fichier a Positiounswäerter vum Master Node um Enn vum Schrëtt 1 entspriechen.

D'MASTER_HOST, MASTER_USER, an MASTER_PASSWORD entspriechen der Master IP Adress, dem Replikatiouns Benotzer, respektiv dem Replikatiouns Benotzer Passwuert.

Da fänkt d'Sklave Replikatioun Threads un:

mysql> START SLAVE;

Schrëtt 4: Testen MySQL Master-Slave Replikatioun

Elo, fir ze testen ob d'Replikatioun tëscht dem Master- a Sklavennode funktionnéiert, loggt Iech op de MySQL Datebankserver um Master Node un:

$ sudo mysql -u root -p

Schafen eng Test Datebank. Hei ass eis Testdatenbank genannt repplication_db.

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

Elo gitt op de Sklavennode, loggt Iech op de MySQL Server a bestätegen datt d'replikatioun_db Datebank präsent ass. Vun der Ausgab hei drënner kënne mir gesinn datt d'Datebank präsent ass. Dëst ass Bestätegung datt d'Replikatioun vum Master op de Sklavennode stattfonnt huet.

mysql> SHOW DATABASES;

An dat ass et, mir hunn erfollegräich demonstréiert wéi Dir e MySQL Master-Sklave Replikatiounsmodell opstellt deen Datenbanken vum Master Node op de Sklave Node replizéiere kann.