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.