Website-Suche

So richten Sie die MySQL-Master-Slave-Replikation auf RHEL 8 ein


MySQL-Replikation ist ein Prozess, bei dem Daten von einem Server automatisch in Echtzeit auf einen anderen Backup-Server kopiert oder repliziert werden. Die Replikation sorgt für Redundanz und Fehlertoleranz und gibt dem Benutzer die Gewissheit, dass die Daten auch nach einem Ausfall des Masterservers noch wiederhergestellt werden können.

In diesem Tutorial erfahren Sie, wie Sie eine MySQL-Master-Slave-Replikation auf einem RHEL 8-Linux konfigurieren und einrichten.

Voraussetzungen

Im Setup werden wir zwei Server haben, auf denen RHEL 8 mit den folgenden IP-Adressen läuft.

Master = 173.82.120.14
Slave  = 173.82.115.165

Lassen Sie uns nun fortfahren und sehen, wie wir das MySQL-Master-Slave-Replikationssetup unter RHEL 8 Linux konfigurieren können.

Schritt 1: Installieren Sie MySQL auf dem Master- und Slave-Server

1. Die neueste Version von MySQL 8.x ist bereits im Standard-Repository von RHEL 8 enthalten und Sie können sie wie folgt installieren leckerer Befehl.

yum -y install @mysql

Schritt 2: Sichern Sie MySQL auf dem Master- und Slave-Server

Nach der Installation sollten Sie nun den gerade installierten MySQL-Dienst starten und ihn bei jedem Serverstart automatisch starten lassen. Verwenden Sie daher den folgenden Befehl.

systemctl enable mysqld
systemctl start mysqld

Als Nächstes müssen Sie Ihre MySQL-Installation sichern, indem Sie das Sicherheitsskript ausführen, das mit mehreren sicherheitsbasierten Vorgängen wie dem Festlegen des Root-Passworts, dem Entfernen anonymer Benutzer, dem Verbieten der Root-Anmeldung aus der Ferne, dem Entfernen der Testdatenbank und dem Neuladen der Berechtigung ausgestattet ist.

mysql_secure_installation

Fahren Sie mit dem Rest der Eingabeaufforderung fort und beantworten Sie alle Fragen mit Ja. Richten Sie den Server daher gemäß den besten Sicherheitspraktiken ein.

Schritt 3: Konfigurieren des MySQL-Masterservers

Um mit der Konfiguration des Master-Servers zu beginnen, fahren Sie fort und öffnen Sie die MySQL-Konfigurationsdatei, indem Sie den folgenden Befehl eingeben.

sudo vim /etc/my.cnf

Hängen Sie im Abschnitt mysqld die Zeilen wie unten gezeigt an.

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

Starten Sie abschließend den MySQL-Dienst neu.

sudo systemctl restart mysqld

Jetzt erstellen wir einen Replikationsbenutzer. Melden Sie sich daher als Root-Benutzer bei Ihrem MySQL-Masterserver an und geben Sie das Passwort ein.

sudo mysql -u root -p

Führen Sie nun die folgenden Befehle aus, um den Replikatbenutzer zu erstellen und gleichzeitig dem Slave-Benutzer Zugriff zu gewähren. Denken Sie daran, die IP-Adresse Ihres Computers zu verwenden.

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

Jetzt geben Sie den folgenden Befehl ein, der den Namen und die Position der Binärdatei ausgibt.

mysql> SHOW MASTER STATUS\G

Denken Sie daran, den resultierenden Dateinamen msql-bin.000002 und seine Position 939 zu notieren.

Schritt 4: Konfigurieren des MySQL-Slave-Servers

Genau wie beim Einrichten des Masters sollten Sie die folgenden Änderungen an der MySQL-Slave-Konfigurationsdatei vornehmen.

sudo vim  /etc/my.cnf

Hängen Sie die folgenden Zeilen in die Konfigurationsdatei im Abschnitt mysqld ein.

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

Starten Sie den Server neu.

sudo systemctl restart mysqld

Der nächste Schritt besteht nun darin, den Slave-Server so zu konfigurieren, dass er vom Master-Server repliziert. Melden Sie sich beim MySQL-Server an.

sudo mysql -u root -p

Stoppen Sie zunächst die Replikationsthreads.

mysql> STOP SLAVE;

Führen Sie nun die folgende Abfrage aus, die den Slave für die Replikation vom Master-Server konfiguriert.

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;

Stellen Sie sicher, dass Sie den richtigen IP-Benutzernamen und das richtige Passwort verwenden. Verwenden Sie außerdem den Dateinamen und die Position, die Sie vom Masterserver erhalten haben.

Geben Sie abschließend den folgenden Befehl ein, um die Slave-Threads zu starten.

mysql> START SLAVE;

Schritt 5: Testen der MySQL-Master-Slave-Replikation

An diesem Punkt haben Sie die Konfiguration sowohl des Master- als auch des Slave-Servers abgeschlossen. Wir müssen nun überprüfen, ob die Konfiguration funktioniert und ob die Replikation stattfinden kann.

Gehen Sie dazu zum Master-Server und melden Sie sich beim MySQL-Datenbankserver an.

sudo mysql -u root -p

Erstellen Sie eine Beispieldatenbank.

mysql> CREATE DATABASE replication_database;

Gehen Sie nun zum Slave-Server und melden Sie sich erneut beim MySQL-Datenbankserver an.

sudo mysql -u root -p

Listen Sie nun alle Datenbanken mit dem folgenden Befehl auf.

mysql> SHOW DATABASES;

Wenn Sie die erstellte Datenbank sehen, funktioniert die Einrichtung der MySQL-Master-Slave-Replikation.

Abschluss

Die Replikation ist ein ziemlich einfacher Prozess, der leicht durchgeführt werden kann. In dieser Anleitung haben Sie erfahren, wie Sie eine Replikation eines MySQL-Masters zum Slave in einem RHEL 8-Linux erstellen können.