Sådan opsættes MySQL Master-Slave Replication på RHEL 8


MySQL-replikering er en proces, hvor data fra en server automatisk kopieres eller replikeres til en anden backup-server i realtid. Replikering giver redundans og fejltolerance og giver brugeren ro i sindet, at data stadig kan gendannes, selv efter en fiasko i masterserveren.

I denne vejledning vil du lære at konfigurere og opsætte en MySQL-master-slave-replikering på en RHEL 8 Linux.

I opsætningen skal vi have to servere, der kører RHEL 8 med følgende IP-adresser.

Master = 173.82.120.14
Slave  = 173.82.115.165

Lad os nu fortsætte og se, hvordan vi kan konfigurere MySQL Master-slave replikeringsopsætningen på RHEL 8 Linux.

Trin 1: Installer MySQL på Master og Slave Server

1. Den seneste version af MySQL 8.x er allerede inkluderet i standardopbevaringsstedet for RHEL 8, og du kan installere det ved hjælp af følgende yum-kommando.

# yum -y install @mysql

Trin 2: Sikker MySQL på Master og Slave Server

Efter installationen skal du nu starte MySQL-tjenesten, du lige har installeret, og få den til at starte automatisk hver gang du starter serveren. Brug derfor følgende kommando.

# systemctl enable mysqld
# systemctl start mysqld

Dernæst skal du sikre din MySQL-installation ved at køre sikkerhedsscriptet, der kommer med flere sikkerhedsbaserede operationer, såsom at indstille rodadgangskoden, fjerne anonyme brugere, ikke tillade root-login eksternt, fjerne testdatabase og genindlæse privilegium.

# mysql_secure_installation

Fortsæt med resten af prompten og svar Ja på alle spørgsmålene, så konfigurer serveren til den bedste sikkerhedspraksis.

Trin 3: Konfiguration af MySQL Master Server

For at starte med Master-serverkonfigurationen skal du fortsætte og åbne MySQL-konfigurationsfilen ved at skrive følgende kommando.

$ sudo vim /etc/my.cnf

I afsnittet mysqld skal du tilføje linjerne som vist nedenfor.

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

Til sidst skal du genstarte MySQL-tjenesten.

$ sudo systemctl restart mysqld

Nu skal vi oprette en replikationsbruger. Log ind på din MySQL-masterserver som rodbruger, og angiv adgangskoden.

$ sudo mysql -u root -p

Kør nu følgende kommandoer for at oprette replikabrugeren, samtidig med at du giver slave adgang til brugeren. Husk at bruge maskinens IP-adresse.

mysql> CREATE USER 'replica'@'173.82.115.165' IDENTIFIED BY 'strong_password';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.82.115.165';

Nu skal du skrive følgende kommando, der udskriver det binære filnavn og position.

mysql> SHOW MASTER STATUS\G

Husk at tage det resulterende filnavn msql-bin.000002 og dets position 939 til efterretning.

Trin 4: Konfiguration af MySQL Slave Server

Ligesom processen med opsætning af masteren skal du foretage følgende ændringer i mysql-slavekonfigurationsfilen.

$ sudo vim  /etc/my.cnf

Tilføj følgende linjer i konfigurationsfilen under mysqld sektionen.

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

Genstart serveren.

$ sudo systemctl restart mysqld

Nu er det næste trin at konfigurere slaveserveren til at replikere fra masterserveren. Log ind på MySQL-serveren.

$ sudo mysql -u root -p

Stop først replikeringstrådene.

mysql> STOP SLAVE;

Kør nu følgende forespørgsel, der konfigurerer slaven til at replikere fra masterserveren.

mysql> CHANGE MASTER TO
    -> MASTER_HOST='173.82.120.14' ,
    -> MASTER_USER='replica' ,
    -> MASTER_PASSWORD='[email ' ,
    -> MASTER_LOG_FILE='mysql-bin.000002' ,
    -> MASTER_LOG_POS=939;

Sørg for at bruge det korrekte IP-brugernavn og den korrekte adgangskode. Brug også det filnavn og den position, du fik fra masterserveren.

Til sidst skal du skrive følgende kommando for at starte slavetrådene.

mysql> START SLAVE;

Trin 5: Test af MySQL Master-Slave Replication

På dette tidspunkt har du afsluttet konfigurationen af både master- og slave-serverne. Vi skal nu kontrollere, om konfigurationen fungerer, og om replikeringen kan finde sted.

For at gøre dette skal du gå ud til masterserveren og logge på MySQL-databaseserveren.

$ sudo mysql -u root -p

Opret en eksempeldatabase.

mysql> CREATE DATABASE replication_database;

Gå nu ud til Slave-serveren, og log igen på MySQL-databaseserveren.

$ sudo mysql -u root -p

Liste nu alle databaser ved hjælp af følgende kommando.

mysql> SHOW DATABASES;

Hvis du ser den oprettede database, fungerer opsætningen af MySQL Master-Slave Replication.

Replikering er en ret simpel proces, der let kan udføres. I denne vejledning har du lært, hvordan du kan oprette en replikering af en MySQL-master til at slave i en RHEL 8 Linux.