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

So konfigurieren Sie die MySQL-Master-Slave-Replikation unter CentOS 7

Die MySQL-Replikation ist ein Prozess, mit dem Sie Daten automatisch von einem Datenbankserver auf einen oder mehrere Server kopieren können.

MySQL unterstützt eine Reihe von Replikationstopologien, wobei die Master/Slave-Topologie eine der bekanntesten Topologien ist, in der ein Datenbankserver als Master fungiert, während ein oder mehrere Server als Slaves fungieren. Standardmäßig ist die Replikation asynchron, wobei der Master Ereignisse sendet, die Datenbankänderungen an sein Binärlog beschreiben, und Slaves die Ereignisse anfordern, wenn sie bereit sind.

In diesem Tutorial erklären wir, wie Sie eine MySQL-Master/Slave-Replikation mit einem Master- und einem Slave-Server unter CentOS 7 einrichten. Die gleichen Schritte gelten für MariaDB.

Diese Art der Replikationstopologie eignet sich am besten für die Bereitstellung von Lesereplikaten für die Leseskalierung, Live-Datenbanksicherungen für die Notfallwiederherstellung und für Analysejobs.

Voraussetzungen #

In diesem Beispiel gehen wir davon aus, dass Sie zwei Server mit CentOS 7 haben, die über ein privates Netzwerk miteinander kommunizieren können. Wenn Ihr Hosting-Provider keine privaten IP-Adressen bereitstellt, können Sie die öffentlichen IP-Adressen verwenden und Ihre Firewall so konfigurieren, dass Datenverkehr auf Port 3306 nur von vertrauenswürdigen Quellen zugelassen wird.

Die Server in diesem Beispiel haben die folgenden IPs:

Master IP: 192.168.121.59
Slave IP:  192.168.121.14

Installieren Sie MySQL #

Die standardmäßigen CentOS 7-Repositorys enthalten keine MySQL-Pakete, daher werden wir MySQL aus ihrem offiziellen Yum-Repository installieren. Um Probleme zu vermeiden, werden wir auf beiden Servern dieselbe MySQL-Version 5.7 installieren.

Installieren Sie MySQL sowohl auf dem Master- als auch auf dem Slave-Server:

sudo yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmsudo yum install mysql-community-server

Sobald die Installation abgeschlossen ist, starten Sie den MySQL-Dienst und aktivieren Sie ihn für den automatischen Start beim Booten mit:

sudo systemctl enable mysqldsudo systemctl start mysqld

Wenn der MySQL-Server zum ersten Mal gestartet wird, wird ein temporäres Passwort für den MySQL-Root-Benutzer generiert. Um das Passwort zu finden, verwenden Sie den folgenden grep-Befehl:

sudo grep 'temporary password' /var/log/mysqld.log

Führen Sie die mysql_secure_installation aus Befehl, um Ihr neues Root-Passwort festzulegen und die Sicherheit der MySQL-Instanz zu verbessern:

mysql_secure_installation

Geben Sie das temporäre Root-Passwort ein und antworten Sie mit Y (ja) auf alle Fragen.

Das neue Passwort muss mindestens 8 Zeichen lang sein und mindestens einen Großbuchstaben, einen Kleinbuchstaben, eine Zahl und ein Sonderzeichen enthalten.

Konfigurieren Sie den Master-Server #

Zuerst konfigurieren wir den Master-MySQL-Server und nehmen die folgenden Änderungen vor:

  • Stellen Sie den MySQL-Server so ein, dass er auf der privaten IP lauscht.
  • Legen Sie eine eindeutige Server-ID fest.
  • Aktivieren Sie die binäre Protokollierung.

Öffnen Sie dazu die MySQL-Konfigurationsdatei und fügen Sie die folgenden Zeilen in [mysqld] ein Abschnitt:

sudo nano /etc/my.cnf
master:/etc/my.cnf
bind-address           = 192.168.121.59
server-id              = 1
log_bin                = mysql-bin

Wenn Sie fertig sind, starten Sie den MySQL-Dienst neu, damit die Änderungen wirksam werden

sudo systemctl restart mysqld

Im nächsten Schritt erstellen Sie einen neuen Replikationsbenutzer. Melden Sie sich als Root-Benutzer beim MySQL-Server an:

mysql -uroot -p

Führen Sie in der MySQL-Eingabeaufforderung die folgenden SQL-Abfragen aus, die das replica erstellen Benutzer und gewähren Sie den REPLICATION SLAVE Privileg für den Benutzer:

CREATE USER 'replica'@'192.168.121.14' IDENTIFIED BY 'strong_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14';
Stellen Sie sicher, dass Sie die IP mit Ihrer Slave-IP-Adresse ändern. Sie können den Benutzer nach Belieben benennen.

Während Sie sich noch in der MySQL-Eingabeaufforderung befinden, führen Sie den folgenden Befehl aus, der den binären Dateinamen und die Position ausgibt.

SHOW MASTER STATUS\G
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 1427
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

Notieren Sie sich den Dateinamen ‘mysql-bin.000001’ und Position ‘1427‘ . Sie benötigen diese Werte bei der Konfiguration des Slave-Servers. Diese Werte werden auf Ihrem Server wahrscheinlich anders sein.

Konfiguriere den Slave-Server #

Wie beim obigen Master-Server nehmen wir die folgenden Änderungen am Slave-Server vor:

  • Stellen Sie den MySQL-Server so ein, dass er auf der privaten IP lauscht
  • Legen Sie eine eindeutige Server-ID fest
  • Aktivieren Sie die binäre Protokollierung

Öffnen Sie die MySQL-Konfigurationsdatei und bearbeiten Sie die folgenden Zeilen:

sudo nano /etc/my.cnf
slave:/etc/my.cnf
bind-address           = 192.168.121.14
server-id              = 2
log_bin                = mysql-bin

Starten Sie den MySQL-Dienst neu:

sudo systemctl restart mysqld

Der nächste Schritt besteht darin, die Parameter zu konfigurieren, die der Slave-Server verwendet, um sich mit dem Master-Server zu verbinden. Melden Sie sich bei der MySQL-Shell an:

mysql -uroot -p

Stoppen Sie zuerst die Slave-Threads:

STOP SLAVE;

Führen Sie die folgende Abfrage aus, die den Slave so einrichtet, dass er den Master repliziert:

CHANGE MASTER TOMASTER_HOST='192.168.121.59',MASTER_USER='replica',MASTER_PASSWORD='strong_password',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1427;

Stellen Sie sicher, dass Sie die richtige IP-Adresse, den richtigen Benutzernamen und das richtige Passwort verwenden. Der Name und die Position der Protokolldatei müssen mit den Werten übereinstimmen, die Sie vom Masterserver erhalten haben.

Wenn Sie fertig sind, starten Sie die Slave-Threads.

START SLAVE;

Testen Sie die Konfiguration #

An diesem Punkt sollten Sie über eine funktionierende Master/Slave-Replikationskonfiguration verfügen.

Um zu überprüfen, ob alles wie erwartet funktioniert, erstellen wir eine neue Datenbank auf dem Masterserver:

mysql -uroot -p
CREATE DATABASE replicatest;

Melden Sie sich bei der Slave-MySQL-Shell an:

mysql -uroot -p

Führen Sie den folgenden Befehl aus, um alle Datenbanken aufzulisten:

SHOW DATABASES;

Sie werden feststellen, dass die Datenbank, die Sie auf dem Master-Server erstellt haben, auf dem Slave repliziert wird:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| replicatest        |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Cent OS
  1. So installieren Sie MySQL unter CentOS 7

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

  3. So konfigurieren Sie OpenSSH unter CentOS 7

  4. So richten Sie die MySQL-Replikation unter CentOS ein

  5. So installieren Sie MySQL 5.6 unter CentOS 6.x

So konfigurieren Sie die MariaDB-Replikation unter CentOS Linux

So konfigurieren Sie OpenNMS unter CentOS 7

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

So konfigurieren Sie die PostgreSQL 12-Streaming-Replikation in CentOS 8

So richten Sie die MariaDB-Master-Slave-Replikation unter CentOS 7 ein

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