Bei der Datenreplikation werden Ihre Daten über mehrere Server kopiert, um die Datenverfügbarkeit zu verbessern und die Zuverlässigkeit und Leistung einer Anwendung zu verbessern. In MySQL Bei der Replikation werden Daten aus einer Datenbank vom Master-Server in Echtzeit auf andere Knoten kopiert, um die Konsistenz der Daten zu gewährleisten und auch Backup und Redundanz bereitzustellen.
In dieser Anleitung zeigen wir, wie Sie MySQL einrichten können (Master-Slave ) Replikation in RHEL-basierten Distributionen wie CentOS , Fedora , Rocky Linux und AlmaLinux .
Setup der MySQL-Replikation
Hier ist also unser MySQL Einrichtung des Replikationslabors.
MySQL Master - 10.128.0.14 MySQL Slave - 10.128.15.211
Fangen wir an…
Schritt 1:MySQL auf Master- und Slave-Server installieren
Wir beginnen mit der Installation von MySQL Datenbank sowohl auf dem Master und Sklave Server.
$ sudo dnf install @mysql
Sobald die Installation abgeschlossen ist, legen Sie Wert darauf, den Datenbankserver zu starten.
$ sudo systemctl start mysqld
Aktivieren Sie es dann, um beim Systemstart oder beim Neustart zu starten.
$ sudo systemctl enable mysqld
Bestätigen Sie danach, dass die MySQL Datenbankserver läuft wie gezeigt:
$ sudo systemctl status mysqld
Schritt 2:MySQL auf Master- und Slave-Server sichern
Der nächste Schritt ist die Sicherung von MySQL Datenbank sowohl auf dem Master und Sklave Server. Dies liegt daran, dass die Standardeinstellungen unsicher sind und einige Schlupflöcher aufweisen, die von Hackern leicht ausgenutzt werden können.
Führen Sie also den folgenden Befehl aus, um MySQL abzusichern:
$ sudo mysql_secure_installation
Zuerst müssen Sie MySQL einstellen Root-Passwort. Stellen Sie sicher, dass Sie ein starkes Root-Passwort angeben, vorzugsweise mit mehr als 8 Zeichen, die eine Mischung aus Großbuchstaben, Kleinbuchstaben, Sonderzeichen und Ziffern sind.
Geben Sie für die verbleibenden Eingabeaufforderungen 'Y'
ein um den Datenbankserver auf die empfohlenen Einstellungen einzustellen.
Nachdem Sie die Installation und Härtung von MySQL abgeschlossen haben Auf dem Master- und Slave-Knoten müssen Sie als Nächstes den Master-Knoten konfigurieren.
Schritt 3:Konfigurieren Sie den Master-Knoten (Server)
Im nächsten Schritt konfigurieren Sie den Master Node und gewähren Sie den Slave Knotenzugriff darauf. Zuerst müssen wir die mysql-server.cnf bearbeiten Konfigurationsdatei.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Fügen Sie die folgenden Zeilen unter [mysqld]
hinzu Abschnitt.
bind-address = 10.128.0.14 server-id = 1 log_bin = mysql-bin
Wenn Sie fertig sind, speichern Sie die Änderungen und beenden Sie. Starten Sie dann MySQL neu Server.
$ sudo sysemctl restart mysqld
Melden Sie sich als Nächstes bei MySQL an Schale.
$ sudo mysql -u root -p
Führen Sie die folgenden Befehle aus, um einen Datenbankbenutzer zu erstellen, der verwendet wird, um den Master und den Slave für die Replikation zu binden.
mysql> CREATE USER 'replica'@'10.128.15.211' IDENTIFIED BY '[email protected]'; mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'10.128.15.211';
Wenden Sie die Änderungen an und beenden Sie MySQL Server.
mysql> FLUSH PRIVILEGES; mysql> EXIT;
Überprüfen Sie den Status des Masters.
mysql> SHOW MASTER STATUS\G
Notieren Sie sich den Dateinamen und die Position. Diese benötigen Sie später, wenn Sie den Slave für die Replikation einrichten. In unserem Fall haben wir den Dateinamen als mysql-bin.000001
und Position 1232 .
Schritt 4:Konfigurieren Sie den Slave-Knoten (Server)
Gehen Sie nun zurück zum Slave-Knoten. Bearbeiten Sie erneut die mysql-server.cnf Konfigurationsdatei.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Fügen Sie diese Zeilen wie zuvor unter [mysqld]
ein Sektion. Ändern Sie die IP-Adresse so, dass sie der IP des Slaves entspricht. Weisen Sie außerdem eine andere Server-ID zu . Hier haben wir ihm den Wert 2 zugewiesen .
bind-address = 10.128.15.211 server-id = 2 log_bin = mysql-bin
Speichern Sie die Änderungen und verlassen Sie die Datei. Starten Sie dann den Datenbankserver neu.
$ sudo systemctl restart mysqld
Um den Slave zu konfigurieren Knoten vom Master-Knoten zu replizieren, melden Sie sich beim MySQL-Server des Slaves an.
$ sudo mysql -u root -p
Stoppen Sie zuallererst die Replikationsthreads:
mysql> STOP SLAVE;
Führen Sie dann den folgenden Befehl aus, um den Slave-Knoten so zu konfigurieren, dass er Datenbanken vom Master repliziert.
mysql> CHANGE MASTER TO MASTER_HOST='10.128.0.14' , MASTER_USER='replica' , MASTER_PASSWORD='[email protected]' , MASTER_LOG_FILE='mysql-bin.000001' , MASTER_LOG_POS=1232;
Beachten Sie, dass die MASTER_LOG_FILE und MASTER_LOG_POS Flags entsprechen der Datei und der Position Werte vom Master Knoten am Ende von Schritt 1.
Der MASTER_HOST , MASTER_USER, und MASTER_PASSWORD entsprechen der Master-IP-Adresse, dem Replikationsbenutzer bzw. dem Passwort des Replikationsbenutzers.
Starten Sie dann die Slave-Replikations-Threads:
mysql> START SLAVE;
Schritt 4:Testen der MySQL-Master-Slave-Replikation
Um nun zu testen, ob die Replikation zwischen Master- und Slave-Knoten funktioniert, melden Sie sich beim MySQL-Datenbankserver auf dem Master-Knoten an:
$ sudo mysql -u root -p
Erstellen Sie eine Testdatenbank. Hier heißt unsere Testdatenbank replication_db .
mysql> CREATE DATABASE replication_db;
Verify the existence of the database.
mysql> SHOW DATABASES;
Gehen Sie nun zum Slave-Knoten, melden Sie sich beim MySQL-Server an und bestätigen Sie, dass die replication_db Datenbank vorhanden ist. Aus der Ausgabe unten können wir sehen, dass die Datenbank vorhanden ist. Dies ist eine Bestätigung, dass die Replikation vom Master- zum Slave-Knoten stattgefunden hat.
mysql> SHOW DATABASES;
Und das war's, wir haben erfolgreich demonstriert, wie Sie ein MySQL einrichten können Master-Slave-Replikationsmodell, das Datenbanken vom Master-Knoten auf den Slave-Knoten replizieren kann.