sql >> Databasteknik >  >> RDS >> Mysql

Hur man ställer in MySQL-replikering i RHEL, Rocky och AlmaLinux

Datareplikering är processen att kopiera dina data över flera servrar för att förbättra datatillgängligheten och förbättra tillförlitligheten och prestandan för en applikation. I MySQL replikering, data kopieras från en databas från huvudservern till andra noder i realtid för att säkerställa konsistens av data och även för att tillhandahålla backup och redundans.

I den här guiden visar vi hur du kan ställa in MySQL (Master-Slave ) replikering i RHEL-baserade distributioner som CentOS , Fedora , Rocky Linux, och AlmaLinux .

MySQL-replikeringsinställningar

Så här är vår MySQL inställning av replikeringslabb.

MySQL Master - 10.128.0.14MySQL Slave - 10.128.15.211

Låt oss komma igång...

Steg 1:Installera MySQL på master- och slavserver

Vi börjar med att installera MySQL databas på både master och slav servrar.

$ sudo dnf installera @mysql

När installationen är klar, gör en punkt för att starta databasservern.

$ sudo systemctl starta mysqld

Aktivera sedan den för att starta till systemstart eller vid omstart.

$ sudo systemctl aktivera mysqld

Därefter bekräftar du att MySQL databasservern körs som visas:

$ sudo systemctl status mysqld

Steg 2:Säkra MySQL på master- och slavserver

Nästa steg är att säkra MySQL databas på både master och slav servrar. Detta beror på att standardinställningarna är osäkra och innehåller några kryphål som lätt kan utnyttjas av hackare.

Så, för att hårdna MySQL, kör kommandot:

$ sudo mysql_secure_installation

Först måste du ställa in MySQL root-lösenord. Var noga med att ange ett starkt root-lösenord, helst med fler än 8 tecken som är en blandning av versaler, gemener, specialtecken och numeriska tecken.

För de återstående uppmaningarna skriver du 'Y' för att justera databasservern till de rekommenderade inställningarna.

När du har installerat och härdat MySQL på master- och slavnoden är nästa att konfigurera masternoden.

Steg 3:Konfigurera huvudnoden (server)

Nästa steg är att konfigurera Master nod och bevilja slaven nodåtkomst till den. Först måste vi redigera mysql-server.cnf konfigurationsfil.

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

Lägg till följande rader under [mysqld] avsnitt.

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

När du är klar, spara ändringarna och avsluta. Starta sedan om MySQL server.

$ sudo sysemctl starta om mysqld

Logga sedan in på MySQL skal.

$ sudo mysql -u root -p

Utför följande kommandon för att skapa en databasanvändare som kommer att användas för att binda mastern och slaven för replikering.

mysql> SKAPA ANVÄNDARE 'replica'@'10.128.15.211' IDENTIFIERAD AV '[email protected]';mysql> BEHANDLA REPLIKATIONSSLAV PÅ *.*TILL 'replika'@'10.128.15.211';

Tillämpa ändringarna och avsluta MySQL server.

mysql> FLUSH PRIVILEGES;mysql> AVSLUTA;

Verifiera masterns status.

mysql> VISA MASTER STATUS\G

Notera filnamnet och positionen. Du kommer att behöva detta senare när du ställer in slaven för replikering. I vårt fall har vi filnamnet som mysql-bin.000001 och position 1232 .

Steg 4:Konfigurera slavnoden (server)

Gå nu tillbaka till slavnoden. Än en gång, redigera mysql-server.cnf konfigurationsfil.

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

Som tidigare, klistra in dessa rader under [mysqld] sektion. Ändra IP-adressen så att den motsvarar slavens IP. Tilldela även ett annat server-id . Här har vi tilldelat den värdet 2 .

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

Spara ändringarna och avsluta filen. Starta sedan om databasservern.

$ sudo systemctl starta om mysqld

För att konfigurera Slaven nod för att replikera från masternoden, logga in på slavens MySQL-server.

$ sudo mysql -u root -p

Först och främst, stoppa replikeringstrådarna:

mysql> STOPPA SLAV;

Kör sedan följande kommando för att konfigurera slavnoden för att replikera databaser från mastern.

mysql> ÄNDRA MASTER TILL MASTER_HOST='10.128.0.14' , MASTER_USER='replica' , MASTER_PASSWORD='[email protected]' , MASTER_LOG_FILE='mysql-bin.000001' , MASTER>LOG_POS; 

Observera att MASTER_LOG_FILE och MASTER_LOG_POS flaggor motsvarar filen och position värden från Master nod i slutet av steg 1.

MASTER_HOST , MASTER_USER, och MASTER_PASSWORD motsvarar huvud-IP-adressen, replikeringsanvändaren respektive replikeringsanvändarens lösenord.

Starta sedan slavreplikeringstrådarna:

mysql> STARTA SLAV;

Steg 4:Testa MySQL Master-Slave Replication

Nu, för att testa om replikering mellan master- och slavnoden fungerar, logga in på MySQL-databasservern på masternoden:

$ sudo mysql -u root -p

Skapa en testdatabas. Här heter vår testdatabas replikation_db .

mysql> CREATE DATABASE replication_db;
Verifiera att databasen finns.
mysql> VISA DATABASER;

Gå nu över till slavnoden, logga in på MySQL-servern och bekräfta att replication_db databas finns. Från utgången nedan kan vi se att databasen finns. Detta är en bekräftelse på att replikering har skett från mastern till slavnoden.

mysql> VISA DATABASER;

Och det är det, vi har framgångsrikt visat hur du kan ställa in en MySQL master-slave replikeringsmodell som kan replikera databaser från masternoden till slavnoden.


  1. Oracle ORA-12154-fel på lokal IIS, men inte med Visual Studio Development Server

  2. SQL Server 2008 Support upphör. Vad nu?

  3. Hur man sanerar rå SQL i Rails 4

  4. Icke försumbar skillnad i exekveringsplan med Oracle vid användning av jdbc Timestamp eller Date