Android

So konfigurieren Sie mysql (mariadb) master

Mysql Installation on Linux

Mysql Installation on Linux

Inhaltsverzeichnis:

Anonim

Bei der MySQL-Replikation werden Daten von einem Datenbankserver (Master) auf einen oder mehrere Server (Slaves) kopiert.

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

In diesem Handbuch zeigen wir Ihnen, wie Sie die MariaDB-Master / Slave-Replikation mit einem Master- und einem Slave-Server unter Debian 10 einrichten. MariaDB ist die Standardimplementierung von MySQL in Debian. Die gleichen Schritte gelten für Oracle MySQL.

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

Voraussetzungen

Wir gehen davon aus, dass Sie zwei Server unter Debian 10 haben, die über ein privates Netzwerk miteinander kommunizieren. Wenn Ihr Hosting-Provider keine privaten IP-Adressen unterstützt, können Sie die öffentlichen IP-Adressen verwenden und Ihre Firewall so konfigurieren, dass der Datenverkehr auf Port 3306 nur von vertrauenswürdigen Quellen zugelassen wird.

Die in diesem Beispiel verwendeten Server haben die folgenden IP-Adressen:

Master IP: 10.10.8.12 Slave IP: 10.10.8.164

MariaDB installieren

Das Standard-Debian 10-Repository enthält MariaDB Version 10.3. Es ist am besten, dieselbe MariaDB-Version auf beiden Servern zu installieren, um mögliche Probleme zu vermeiden.

Installieren Sie MariaDB sowohl auf dem Master als auch auf dem Slave, indem Sie die folgenden Befehle ausführen:

sudo apt-get update sudo apt-get install mariadb-server

Konfigurieren des Master-Servers

Der erste Schritt ist das Einrichten des Masterservers. Wir werden die folgenden Änderungen vornehmen:

  • Stellen Sie den MariaDB-Server so ein, dass er die private IP überwacht. Legen Sie eine eindeutige Server-ID fest. Aktivieren Sie die binäre Protokollierung.

Öffnen Sie die MariaDB-Konfigurationsdatei und kommentieren Sie die folgenden Zeilen aus oder setzen Sie sie:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf master: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.12 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log

Speichern Sie anschließend die Datei und starten Sie den MySQL-Dienst neu, damit die Änderungen wirksam werden:

sudo systemctl restart mariadb

Der nächste Schritt ist das Erstellen eines neuen Replikationsbenutzers. Melden Sie sich als Root-Benutzer beim MariaDB-Server an:

sudo mysql

Führen Sie die folgenden SQL-Abfragen aus, um einen Benutzer mit dem Namen REPLICATION SLAVE zu erstellen und dem Benutzer das REPLICATION SLAVE zu erteilen:

CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';

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

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

SHOW MASTER STATUS\G

*************************** 1. row *************************** File: mysql-bin.000001 Position: 328 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.001 sec)

Notieren Sie sich den Dateinamen 'mysql-bin.000001' und die Position '328'. Diese Werte sind bei der Konfiguration des Slave-Servers erforderlich und unterscheiden sich wahrscheinlich auf Ihrem Server.

Konfigurieren des Slave-Servers

Auf dem Slave-Server werden die gleichen Änderungen vorgenommen wie auf dem Master:

  • Legen Sie fest, dass der MySQL-Server die private IP überwacht. Legen Sie eine eindeutige Server-ID fest. Aktivieren Sie die binäre Protokollierung.

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

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf Slave: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 10.10.8.164 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log

Starten Sie den MariaDB-Dienst neu:

sudo systemctl restart mariadb

Im nächsten Schritt konfigurieren Sie die Parameter, die der Slave-Server für die Verbindung zum Master-Server verwendet. Melden Sie sich bei der MariaDB-Shell an:

sudo mysql

Stoppen Sie zunächst die Slave-Threads:

STOP SLAVE;

Führen Sie die folgende Abfrage aus, um die Master / Slave-Replikation zu konfigurieren:

CHANGE MASTER TO MASTER_HOST='10.10.8.12', MASTER_USER='replica', MASTER_PASSWORD='replica_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328;

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

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

START SLAVE;

Testen Sie die Konfiguration

Zu diesem Zeitpunkt sollten Sie über ein funktionierendes Master / Slave-Replikationssetup verfügen.

Erstellen Sie eine neue Datenbank auf dem Master-Server, um zu überprüfen, ob alles korrekt eingerichtet ist:

sudo mysql

CREATE DATABASE replicatest;

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

sudo mysql

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

SHOW DATABASES;

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

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

Fazit

In diesem Tutorial haben wir gezeigt, dass Sie eine MariaDB-Master / Slave-Replikation auf Debian 10 erstellen.

Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.

debian mysql mariadb