Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So richten Sie die MySQL-Replikation in RHEL, Rocky und AlmaLinux ein

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.