GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So richten Sie die MySQL-Replikation in RHEL/Centos ein

In diesem Artikel werde ich demonstrieren, wie man die MySQL-Replikation zwischen Master- und Slave-Datenbankservern einrichtet. Dabei werden zwei Server verwendet, von denen einer Daten vom anderen repliziert (Master zu Slave). Verwenden Sie dieses Setup, wenn Sie eine verbesserte Zuverlässigkeit und Leistung Ihrer Systemkonfiguration wünschen.

Bitte lesen Sie eines unserer anderen Tutorials, wenn Sie Hilfe beim Einrichten eines RHEL-basierten Systems benötigen.

Für diese Anleitung verwenden wir dieses MySQL-Replikationslabor-Setup.

MySQL Master - 192.168.56.1
MySQL Slave  - 192.168.56.2 

Schritt 1:MySQL auf Master- und Slave-Server installieren

Beginnen Sie damit, die MySQL-Datenbank sowohl auf dem Master- als auch auf dem Slave-Server zu installieren.

$ sudo dnf install @mysql

or

$ sudo yum install mysql-server

Sobald die Installation abgeschlossen ist, starten Sie den Datenbankdienst.

$ sudo systemctl start mysqld

Aktivieren Sie dann den Start mit systemctl. Wenn Sie es aktivieren, wird der Dienst angewiesen, in der Boot-Sequenz zu starten.

$ sudo systemctl enable mysqld

Bestätigen Sie dann, dass der MySQL-Datenbankserver läuft:

$ sudo systemctl status mysqld

Schritt 2:MySQL auf Master- und Slave-Server sichern

Es wird empfohlen, Ihren neuen Datenbankserver mit dem folgenden Befehl zu sichern:

$ sudo mysql_secure_installation

Zunächst müssen Sie das MySQL-Root-Passwort festlegen. Stellen Sie sicher, dass Sie ein sicheres Root-Passwort verwenden, vorzugsweise eines, das eine Kombination aus Großbuchstaben, Kleinbuchstaben, Sonderzeichen und Ziffern enthält und länger als 8 Zeichen ist.

Geben Sie bei den verbleibenden Eingabeaufforderungen „Y“ ein, um den Datenbankserver mit den empfohlenen Einstellungen zu konfigurieren.

Nachdem Sie die Installation und Härtung von MySQL auf dem Master- und Slave-Knoten abgeschlossen haben, besteht der nächste Schritt darin, den Master-Knoten zu konfigurieren.

Schritt 3:Konfigurieren Sie den Master-Knoten (Server)

Jetzt konfigurieren wir den Master-Knoten und gewähren dem Slave-Knoten Zugriff darauf. Zuerst müssen wir die Konfigurationsdatei mysql-server.cnf bearbeiten.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Fügen Sie die folgenden Zeilen unter dem Abschnitt [mysqld] hinzu.

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

Wenn Sie fertig sind, speichern Sie die Änderungen und beenden Sie. Starten Sie dann den MySQL-Server neu.

$ sudo sysemctl restart mysqld

Melden Sie sich als Nächstes bei der MySQL-Shell an.

$ 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'@'192.168.56.2' IDENTIFIED BY 'Password';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'192.168.56.2';

Wenden Sie die Änderungen an und beenden Sie den 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 binlog.000001 und Position 854.

Schritt 4:Konfigurieren Sie den Slave-Knoten (Server)

Gehen Sie nun zurück zum Slave-Knoten. Bearbeiten Sie erneut die Konfigurationsdatei mysql-server.cnf.

$ sudo vim /etc/my.cnf.d/mysql-server.cnf

Fügen Sie diese Zeilen wie zuvor unter dem Abschnitt [mysqld] ein. Ändern Sie die IP-Adresse so, dass sie der IP des Slaves entspricht. Weisen Sie auch eine andere Server-ID zu. Hier haben wir ihm den Wert 2 zugewiesen.

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

Speichern Sie die Änderungen und beenden Sie die Datei. Starten Sie dann den Datenbankserver neu.

$ sudo systemctl restart mysqld

Um den Slave-Knoten für die Replikation vom Master-Knoten zu konfigurieren, melden Sie sich beim MySQL-Server des Slaves an.

$ sudo mysql -u root -p

Beginnen Sie damit, die Replikationsthreads zu stoppen:

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='192.168.56.1' ,
     MASTER_USER='replica' ,
     MASTER_PASSWORD='Password' ,
     MASTER_LOG_FILE='binlog.000001' ,
     MASTER_LOG_POS=854;

Die Flags MASTER LOG FILE und MASTER LOG POS stimmen mit den Datei- und Positionswerten des Master-Knotens am Ende von Schritt 1 überein.

MASTER HOST, MASTER USER und MASTER PASSWORD sind jeweils die Master-IP-Adresse, der Replikationsbenutzer und das Passwort.

Die Slave-Replikations-Threads sollten dann gestartet werden:

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;

Überprüfen Sie die Existenz der Datenbank.

mysql> SHOW DATABASES;

Gehen Sie nun zum Slave-Knoten, melden Sie sich beim MySQL-Server an und überprüfen Sie, ob die Replikations-DB-Datenbank vorhanden ist. Wir können sehen, dass die Datenbank in der Ausgabe unten vorhanden ist. Dies zeigt an, dass eine Replikation vom Master- zum Slave-Knoten stattgefunden hat.

mysql> SHOW DATABASES;

Cent OS
  1. Wie richte ich das MySQL-Master-Slave-Setup mit CentOS 7-Knoten ein?

  2. So richten Sie einen SysLog-Server unter CentOS 7 / RHEL 7 ein

  3. So richten Sie den NFS-Server unter CentOS 7 / RHEL 7 ein

  4. So richten Sie Pure-FTPD mit MySQL unter CentOS und RedHat ein

  5. So richten Sie einen Squid-Proxyserver unter CentOS/RHEL 7 ein

So richten Sie Icinga Web 2 unter CentOS 8 / RHEL 8 ein

So installieren Sie Cacti unter CentOS 6 / RHEL 6

So richten Sie einen Chef 12 unter CentOS 7 / RHEL 7 ein

So installieren Sie MySQL 8.0 unter CentOS 8 / RHEL 8

So richten Sie einen zentralisierten SysLog-Server unter CentOS 8 / RHEL 8 ein

Wie richte ich die MySQL-Master-Slave-Replikation auf RHEL 7 ein?