Zoeken op website

MySQL Master-Slave-replicatie instellen op RHEL 8


MySQL-replicatie is een proces waarbij gegevens van de ene server automatisch in realtime worden gekopieerd of gerepliceerd naar een andere back-upserver. Replicatie zorgt voor redundantie en fouttolerantie en geeft de gebruiker de gemoedsrust dat zelfs na een storing in de masterserver de gegevens nog steeds kunnen worden hersteld.

In deze zelfstudie leert u hoe u een MySQL master-slave-replicatie op een RHEL 8 Linux configureert en instelt.

Vereisten

In de configuratie hebben we twee servers met RHEL 8 met de volgende IP-adressen.

Master = 173.82.120.14
Slave  = 173.82.115.165

Laten we nu verder gaan en kijken hoe we de MySQL Master-slave-replicatie-installatie kunnen configureren op RHEL 8 Linux.

Stap 1: Installeer MySQL op Master- en Slave-server

1. De nieuwste versie van MySQL 8.x is al opgenomen in de standaardrepository van RHEL 8 en u kunt deze als volgt installeren jammie commando.

yum -y install @mysql

Stap 2: Beveilig MySQL op Master- en Slave-server

Na de installatie moet u nu de MySQL-service starten die u zojuist hebt geïnstalleerd en deze automatisch laten starten elke keer dat u de server opstart. Gebruik daarom het volgende commando.

systemctl enable mysqld
systemctl start mysqld

Vervolgens moet u uw MySQL-installatie beveiligen door het beveiligingsscript uit te voeren dat wordt geleverd met verschillende op beveiliging gebaseerde bewerkingen, zoals het instellen van het root-wachtwoord, het verwijderen van anonieme gebruikers, het op afstand weigeren van root-aanmelding, het verwijderen van de testdatabase en het opnieuw laden van bevoegdheden.

mysql_secure_installation

Ga verder met de rest van de prompt en antwoord Ja op alle vragen, dus stel de server in volgens de beste beveiligingspraktijken.

Stap 3: Configureer de MySQL Master Server

Om te beginnen met de Master serverconfiguratie, gaat u verder en opent u het MySQL-configuratiebestand door de volgende opdracht te typen.

sudo vim /etc/my.cnf

Voeg in de sectie mysqld de regels toe zoals hieronder weergegeven.

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

Start ten slotte de MySQL-service opnieuw op.

sudo systemctl restart mysqld

Nu gaan we een replicatiegebruiker maken. Log daarom als rootgebruiker in op uw MySQL-masterserver en geef het wachtwoord op.

sudo mysql -u root -p

Voer nu de volgende opdrachten uit om de replicagebruiker te maken en tegelijkertijd de slaaftoegang aan de gebruiker te verlenen. Vergeet niet het IP-adres van uw machine te gebruiken.

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

Nu gaat u de volgende opdracht typen die de binaire bestandsnaam en positie afdrukt.

mysql> SHOW MASTER STATUS\G

Vergeet niet de resulterende bestandsnaam msql-bin.000002 en de positie ervan 939 te noteren.

Stap 4: De MySQL-slaveserver configureren

Net als bij het instellen van de master, moet u de volgende wijzigingen aanbrengen in het mysql-slave-configuratiebestand.

sudo vim  /etc/my.cnf

Voeg de volgende regels toe aan het configuratiebestand onder de sectie mysqld.

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

Start de server opnieuw op.

sudo systemctl restart mysqld

De volgende stap is nu het configureren van de slaveserver om te repliceren vanaf de masterserver. Log in op de MySQL-server.

sudo mysql -u root -p

Stop eerst de replicatiethreads.

mysql> STOP SLAVE;

Voer nu de volgende query uit die de slaaf configureert om te repliceren vanaf de Master-server.

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

Zorg ervoor dat u de juiste IP-gebruikersnaam en -wachtwoord gebruikt. Gebruik ook de bestandsnaam en positie die u van de hoofdserver heeft gekregen.

Typ ten slotte de volgende opdracht om de slave-threads te starten.

mysql> START SLAVE;

Stap 5: MySQL Master-Slave-replicatie testen

Op dit punt hebt u de configuratie van zowel de master- als de slave-servers voltooid. We moeten nu verifiëren of de configuratie werkt en of de replicatie kan plaatsvinden.

Om dit te doen, gaat u naar de master-server en logt u in op de MySQL-databaseserver.

sudo mysql -u root -p

Maak een voorbeelddatabase.

mysql> CREATE DATABASE replication_database;

Ga nu naar de Slave-server en log opnieuw in op de MySQL-databaseserver.

sudo mysql -u root -p

Maak nu een lijst van alle databases met behulp van de volgende opdracht.

mysql> SHOW DATABASES;

Als u de aangemaakte database ziet, werkt de MySQL Master-Slave Replication-installatie.

Conclusie

Replicatie is een vrij eenvoudig proces dat gemakkelijk kan worden uitgevoerd. In deze handleiding heeft u geleerd hoe u een replicatie van een MySQL-master naar slave kunt maken in een RHEL 8 Linux.