So richten Sie die MySQL Master-Slave-Replikation unter Ubuntu 18.04 ein

MySQL Die Master-Slave-Replikation ist eine Prozedur, mit der Datenbankdateien über einen oder mehrere Knoten in einem Netzwerk repliziert oder kopiert werden können. Dieses Setup bietet Redundanz und Fehlertoleranz, so dass im Falle eines Fehlers in der Hauptknotenkönnen die Datenbanken noch in der wiederhergestellt werden Slave-Knoten. Dies gibt den Benutzern die Gewissheit, dass in keinem Fall alles verloren geht, da ein Replikat der Datenbanken weiterhin von einem anderen Server abgerufen werden kann.

In diesem Handbuch erfahren Sie, wie Sie eine MySQL Datenbank Master-Slave Replikation auf einem Ubuntu 18.04 System.

Voraussetzungen

Im Setup werden zwei Server ausgeführt Ubuntu 18.04 mit den folgenden IP-Adressen.

Master server: 10.128.0.28
Slave server: 10.128.0.29

Lassen Sie uns nun eintauchen und sehen, wie wir das konfigurieren können Master-Slave Replikationssetup ein Ubuntu.

Schritt 1: Installieren Sie MySQL auf Master- und Slave-Knoten

Ubuntu Repositorys enthalten die Version 5.7 von MySQL. Um alle neuen Funktionen zu nutzen und mögliche Probleme zu vermeiden, sollten Sie die neueste MySQL-Version installieren. Aber zuerst aktualisieren wir die beiden Knoten mit dem folgenden Befehl apt.

$ sudo apt update
Aktualisieren Sie die Ubuntu-Software
Aktualisieren Sie die Ubuntu-Software


Installieren MySQL Führen Sie auf beiden Knoten den Befehl aus.

$ sudo apt install mysql-server mysql-client
Installieren Sie MySQL Server in Ubuntu

Öffnen Sie als Nächstes die MySQL Konfigurationsdatei.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Auf der Hauptknoten, scrollen und suchen Sie die bind-address Attribut wie unten gezeigt.

bind-address    =127.0.0.1

Ändern Sie die Loopback-Adresse so, dass sie mit der IP-Adresse des übereinstimmt Hauptknoten.

bind-address   =10.128.0.28
Legen Sie die MySQL Master-IP-Adresse fest
Legen Sie die MySQL Master-IP-Adresse fest

Geben Sie als Nächstes einen Wert für das an server-id Attribut in der [mysqld] Sektion. Die von Ihnen gewählte Nummer sollte nicht mit einer anderen Server-ID übereinstimmen. Weisen wir den Wert zu 1.

server-id   =1
Legen Sie die MySQL Server ID auf dem Master fest
Legen Sie die MySQL Server ID auf dem Master fest

Kopieren Sie ganz unten in der Konfigurationsdatei die folgenden Zeilen und fügen Sie sie ein.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Beenden Sie die Konfigurationsdatei und starten Sie den MySQL-Dienst neu, damit die Änderungen auf dem Masterknoten wirksam werden.

$ sudo systemctl restart mysql

Geben Sie den Befehl ein, um zu überprüfen, ob der MySQL-Server wie erwartet ausgeführt wird.

$ sudo systemctl status mysql
Starten Sie den MySQL-Status neu und überprüfen Sie ihn
Starten Sie den MySQL-Status neu und überprüfen Sie ihn

Perfekt! MySQL Server läuft wie erwartet!

Schritt 2: Erstellen Sie einen neuen Benutzer für die Replikation auf dem Hauptknoten

In diesem Abschnitt erstellen wir einen Replikationsbenutzer in der Hauptknoten. Melden Sie sich dazu wie gezeigt beim MySQL-Server an.

$ sudo mysql -u root -p

Fahren Sie als Nächstes fort und führen Sie die folgenden Abfragen aus, um einen Replikatbenutzer zu erstellen und dem Replikationssklaven Zugriff zu gewähren. Denken Sie daran, Ihre IP-Adresse zu verwenden.

mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';
Erstellen Sie einen MySQL-Replikationsbenutzer
Erstellen Sie einen MySQL-Replikationsbenutzer

Führen Sie als Nächstes den folgenden Befehl aus.

mysql> SHOW MASTER STATUSG

Die Ausgabe sollte der unten gezeigten ähnlich sein.

Überprüfen Sie den MySQL-Masterstatus
Überprüfen Sie den MySQL-Masterstatus

Seien Sie scharf und beachten Sie die mysql-bin.000002 Wert und die Positions-ID 1643. Diese Werte sind beim Einrichten des entscheidend Slave-Server.

Schritt 3: Konfigurieren Sie den MySQL Slave Server

Gehen Sie zum Slave-Server und wie wir es mit dem gemacht haben Master-ServerÖffnen Sie die MySQL-Konfigurationsdatei.

$ sudo vim  /etc/mysql/mysql.conf.d/mysqld.cnf

Genau wie die Master-ServerBearbeiten Sie die folgenden Zeilen.

bind-address           = 10.128.0.29
Binden Sie die MySQL-IP-Adresse an den Slave
Binden Sie die MySQL-IP-Adresse an den Slave

Geben Sie wie zuvor einen Wert für das an server-id Attribut in der [mysqld] Sektion. Wählen Sie diesmal einen anderen Wert. Lass uns gehen mit 2.

server-id      =2 
Stellen Sie die MySQL Server ID auf Slave ein
Stellen Sie die MySQL Server ID auf Slave ein

Fügen Sie erneut die folgenden Zeilen ganz am Ende der Konfigurationsdatei ein.

log_bin = /var/log/mysql/mysql-bin.log
log_bin_index =/var/log/mysql/mysql-bin.log.index
relay_log = /var/log/mysql/mysql-relay-bin
relay_log_index = /var/log/mysql/mysql-relay-bin.index

Starten Sie als nächstes den MySQL-Server auf dem Slave-Knoten neu.

$ sudo systemctl restart mysql

Speichern und beenden Sie anschließend den Texteditor

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

$ sudo mysql -u root -p

In diesem Schritt müssen Sie eine Konfiguration vornehmen, die das ermöglicht Slave-Server mit dem verbinden Master-Server. Aber stoppen Sie zuerst die Slave-Threads wie gezeigt.

mysql> STOP SLAVE; 

Um das zu ermöglichen Slave-Server zu replizieren Master-ServerFühren Sie den Befehl aus.

mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email protected]', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;
MySQL-Replikation auf Slave-Server zulassen
MySQL-Replikation auf Slave-Server zulassen

Wenn Sie scharf genug sind, werden Sie feststellen, dass wir die verwendet haben mysql-bin.00002 Wert und Positions-ID 1643 früher angezeigt nach dem Erstellen des Slave-Replikationsbenutzers.

Zusätzlich wurden die IP-Adresse, der Replikationsbenutzer und das Kennwort des Master-Servers verwendet.

Starten Sie später den Thread, den Sie zuvor gestoppt hatten.

mysql> START SLAVE;

Schritt 4: Überprüfen Sie die MySQL Master-Slave-Replikation

Um zu überprüfen, ob das Setup tatsächlich wie erwartet funktioniert, erstellen wir eine neue Datenbank auf dem Master und prüfen, ob sie auf dem MySQL Slave-Server repliziert wurde.

Melden Sie sich bei MySQL in der an Master-Server.

$ sudo mysql -u root -p

Lassen Sie uns eine Testdatenbank erstellen. In diesem Fall erstellen wir eine Datenbank mit dem Namen replication_db.

mysql> CREATE DATABASE replication_db;

Melden Sie sich jetzt bei Ihrer MySQL-Instanz in der an Slave-Server.

$ sudo mysql -u root -p

Listen Sie nun die Datenbanken mit der Abfrage auf.

mysql> SHOW DATABASES;
Überprüfen Sie die MySQL Master-Slave-Replikation
Überprüfen Sie die MySQL Master-Slave-Replikation

Sie werden die Datenbank bemerken, die Sie auf der erstellt haben Meister wurde am repliziert Sklave. Genial ! Ihre MySQL Master-Slave-Replikation funktioniert wie erwartet! Sie können jetzt sicher sein, dass im Falle eines Fehlers Kopien von Datenbankdateien auf den Slave-Server repliziert werden.

Fazit

In diesem Handbuch haben Sie gelernt, wie Sie a einrichten MySQL Master-Slave Replikationssetup ein Ubuntu 18.04.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *