MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

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

MySQL Die Master-Slave-Replikation ist ein Verfahren, mit dem 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 Ausfalls im Master-Knoten , können die Datenbanken weiterhin im Slave-Knoten wiederhergestellt werden . Dies gibt den Benutzern die Gewissheit, dass in keinem Fall alles verloren geht, da eine Replik der Datenbanken immer noch von einem anderen Server abgerufen werden kann.

In dieser Anleitung erfahren Sie, wie Sie eine MySQL ausführen Datenbank Master-Slave Replikation auf einem Ubuntu 18.04 System.

Voraussetzungen

In der Einrichtung werden wir zwei Server haben, auf denen Ubuntu 18.04 ausgeführt wird 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 den Master-Slave konfigurieren können Replikations-Setup auf Ubuntu .

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

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

$ sudo apt update

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

$ sudo apt install mysql-server mysql-client

Als nächstes öffnen Sie mysql Konfigurationsdatei.

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

Auf dem Master-Knoten , scrollen Sie 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 Master-Knotens übereinstimmt .

bind-address  	=10.128.0.28

Geben Sie als Nächstes einen Wert für die server-id an -Attribut im [mysqld] Sektion. Die von Ihnen gewählte Nummer sollte mit keiner anderen Server-ID-Nummer übereinstimmen. Lassen Sie uns den Wert 1 zuweisen .

server-id	 =1

Kopieren Sie ganz am Ende 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 Master-Knoten wirksam werden.

$ sudo systemctl restart mysql

Um zu überprüfen, ob der MySQL-Server wie erwartet läuft, geben Sie den Befehl ein.

$ sudo systemctl status mysql

Perfekt! Der MySQL-Server läuft wie erwartet!

Schritt 2:Erstellen Sie einen neuen Benutzer für die Replikation auf dem Master-Knoten

In diesem Abschnitt erstellen wir einen Replikationsbenutzer im Master-Knoten . 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 Replikations-Slave 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';

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

mysql> SHOW MASTER STATUS\G

Die Ausgabe sollte dem ähneln, was Sie unten sehen können.

Seien Sie gespannt und notieren Sie sich mysql-bin.000002 Wert und die Positions-ID 1643 . Diese Werte sind entscheidend für die Einrichtung des Slave-Servers .

Schritt 3:Konfigurieren Sie den MySQL-Slave-Server

Gehen Sie zum Slave-Server und wie wir es mit dem Master-Server getan haben , öffnen Sie die MySQL-Konfigurationsdatei.

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

Genau wie der Master-Server , bearbeiten Sie die folgenden Zeilen.

bind-address           = 10.128.0.29

Geben Sie wie zuvor einen Wert für die server-id an -Attribut im [mysqld] Sektion. Wählen Sie diesmal einen anderen Wert aus. Los geht's mit 2 .

server-id		=2 

Fügen Sie die folgenden Zeilen wieder 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

Wenn Sie fertig sind, speichern und beenden Sie 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 einige Konfigurationen vornehmen, die den Slave-Server zulassen um sich mit dem Master-Server zu verbinden . Aber stoppen Sie zuerst die Slave-Threads wie gezeigt.

mysql> STOP SLAVE; 

Um den Slave-Server zuzulassen um den Master-Server zu replizieren , fü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;

Wenn Sie eifrig genug sind, werden Sie feststellen, dass wir mysql-bin.00002 verwendet haben Wert und Positions-ID 1643 früher angezeigt, nachdem der Slave-Replikationsbenutzer erstellt wurde.

Außerdem wurden die IP-Adresse, der Replikationsbenutzer und das Passwort des Master-Servers verwendet.

Starten Sie später den Thread, den Sie zuvor beendet 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, werden wir eine neue Datenbank auf dem Master erstellen und prüfen, ob sie auf dem MySQL-Slave-Server repliziert wurde.

Melden Sie sich auf dem Master-Server bei MySQL an .

$ sudo mysql -u root -p

Lassen Sie uns eine Testdatenbank erstellen. In diesem Fall erstellen wir eine Datenbank namens replication_db .

mysql> CREATE DATABASE replication_db;

Melden Sie sich jetzt bei Ihrer MySQL-Instanz auf dem Slave-Server an .

$ sudo mysql -u root -p

Listen Sie nun die Datenbanken mit der Abfrage auf.

mysql> SHOW DATABASES;

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

Schlussfolgerung

In dieser Anleitung haben Sie gelernt, wie Sie einen MySQL-Master-Slave einrichten Replikations-Setup auf Ubuntu 18.04 .