sql >> Database teknologi >  >> RDS >> Mysql

Sådan konfigurerer du MySQL-replikering i RHEL, Rocky og AlmaLinux

Datareplikering er processen med at kopiere dine data på tværs af flere servere for at forbedre datatilgængeligheden og forbedre en applikations pålidelighed og ydeevne. I MySQL replikering, kopieres data fra en database fra masterserveren til andre noder i realtid for at sikre konsistens af data og også for at give backup og redundans.

I denne guide viser vi, hvordan du kan konfigurere MySQL (Master-Slave ) replikering i RHEL-baserede distributioner såsom CentOS , Fedora , Rocky Linux, og AlmaLinux .

MySQL-replikeringsopsætning

Så her er vores MySQL opsætning af replikeringslaboratorium.

MySQL Master - 10.128.0.14MySQL Slave - 10.128.15.211

Lad os komme i gang...

Trin 1:Installer MySQL på master- og slaveserver

Vi starter med at installere MySQL database på både master og slave servere.

$ sudo dnf installer @mysql

Når installationen er fuldført, skal du gøre et punkt for at starte databaseserveren.

$ sudo systemctl start mysqld

Aktiver den derefter til at starte til systemstart eller ved genstart.

$ sudo systemctl aktiver mysqld

Bekræft derefter, at MySQL databaseserveren kører som vist:

$ sudo systemctl status mysqld

Trin 2:Sikker MySQL på master- og slaveserver

Det næste trin er at sikre MySQL database på både master og slave servere. Dette skyldes, at standardindstillingerne er usikre og præsenterer nogle smuthuller, som nemt kan udnyttes af hackere.

Så for at hærde MySQL skal du køre kommandoen:

$ sudo mysql_secure_installation

Først bliver du bedt om at indstille MySQL root-adgangskode. Sørg for at angive en stærk root-adgangskode, helst med mere end 8 tegn, som er en blanding af store bogstaver, små bogstaver, specialtegn og numeriske tegn.

For de resterende prompter skal du indtaste 'Y' for at tilpasse databaseserveren til de anbefalede indstillinger.

Når du er færdig med at installere og hærde MySQL på master- og slaveknuden er det næste at konfigurere masterknuden.

Trin 3:Konfigurer Master Node (Server)

Det næste trin er at konfigurere Master node og tildel slaven node adgang til det. Først skal vi redigere mysql-server.cnf konfigurationsfil.

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

Tilføj følgende linjer under [mysqld] afsnit.

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

Når du er færdig, skal du gemme ændringerne og afslutte. Genstart derefter MySQL server.

$ sudo sysemctl genstart mysqld

Log derefter på MySQL skal.

$ sudo mysql -u root -p

Udfør følgende kommandoer for at oprette en databasebruger, der skal bruges til at binde masteren og slaven til replikering.

mysql> OPRET BRUGER 'replica'@'10.128.15.211' IDENTIFICERET AF '[email protected]';mysql> TILDEL REPLIKATIONSSLAVE PÅ *.*TIL 'replika'@'10.128.15.211';

Anvend ændringerne og afslut MySQL server.

mysql> FLUSH PRIVILEGES;mysql> AFSLUT;

Bekræft masterens status.

mysql> VIS MASTER STATUS\G

Noter filnavnet og positionen. Du får brug for dette senere, når du opsætter slaven til replikering. I vores tilfælde har vi filnavnet som mysql-bin.000001 og position 1232 .

Trin 4:Konfigurer slavenoden (server)

Gå nu tilbage til slaveknuden. Endnu en gang, rediger mysql-server.cnf konfigurationsfil.

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

Som før, indsæt disse linjer under [mysqld] afsnit. Skift IP-adressen, så den svarer til slavens IP. Tildel også et andet server-id . Her har vi tildelt den værdien 2 .

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

Gem ændringerne og afslut filen. Genstart derefter databaseserveren.

$ sudo systemctl genstart mysqld

For at konfigurere slaven node for at replikere fra Master-noden, log ind på slavens MySQL-server.

$ sudo mysql -u root -p

Stop først og fremmest replikeringstrådene:

mysql> STOP SLAVE;

Udfør derefter følgende kommando for at konfigurere slavenoden til at replikere databaser fra masteren.

mysql> SKIFT MASTER TIL MASTER_HOST='10.128.0.14' , MASTER_USER='replika' , MASTER_PASSWORD='[email protected]' , MASTER_LOG_FILE='mysql-bin.000001' , MASTER>LOG_POS;LOG 

Bemærk, at MASTER_LOG_FILE og MASTER_LOG_POS flag svarer til filen og positionen værdier fra Master node i slutningen af ​​trin 1.

MASTER_HOST , MASTER_USER, og MASTER_PASSWORD svarer til henholdsvis Master IP-adressen, replikeringsbrugeren og replikeringsbrugerens adgangskode.

Start derefter slave-replikeringstrådene:

mysql> START SLAVE;

Trin 4:Test af MySQL Master-Slave-replikering

For nu at teste, om replikering mellem master- og slaveknuden fungerer, skal du logge ind på MySQL-databaseserveren på masternoden:

$ sudo mysql -u root -p

Opret en testdatabase. Her hedder vores testdatabase replikation_db .

mysql> OPRET DATABASE replikering_db;
Bekræft eksistensen af ​​databasen.
mysql> VIS DATABASER;

Gå nu over til slavenoden, log ind på MySQL-serveren og bekræft, at replikation_db database er til stede. Fra outputtet nedenfor kan vi se, at databasen er til stede. Dette er en bekræftelse af, at replikering har fundet sted fra masteren til slaveknuden.

mysql> VIS DATABASER;

Og det er det, vi har med succes demonstreret, hvordan du kan konfigurere en MySQL master-slave-replikeringsmodel, der kan replikere databaser fra master-noden til slave-noden.


  1. Postgresql Aktuelt tidsstempel på opdatering

  2. Kan ikke åbne brugerens standarddatabase. Login mislykkedes. efter installation af SQL Server Management Studio Express

  3. Forbindelsesstrengparametre for gemte specifikationer

  4. Sådan opretter du en udvidelse til SSMS 2019 (v18)