Detaillierte Erläuterung der Konfigurationspraxis für die MySQL-Master-Slave-Synchronisierung

Detaillierte Erläuterung der Konfigurationspraxis für die MySQL-Master-Slave-Synchronisierung

1. Einleitung

Ich habe zuvor einen Artikel geschrieben: Das Prinzip der MySQL-Master-Slave-Synchronisierung.

Ich glaube, dass jeder, der diesen Artikel gelesen hat, es kaum erwarten kann, es auszuprobieren, oder?

Heute werden wir die MySQL-Master-Slave-Synchronisierung in der Praxis erleben!

2. Umgebungsbeschreibung

Betriebssystem: Ubuntu 16.04

mysql:5.7.17

Die folgenden praktischen Übungen basieren alle auf der oben genannten Umgebung. Natürlich ist es in anderen Umgebungen ähnlich.

3. Eintritt in den eigentlichen Kampf

Werkzeug

2 Maschinen:

Master-IP:192.168.33.22

Slave-IP:192.168.33.33

Operationen auf dem Mastercomputer

1. Ändern Sie die Konfigurationsdatei

Wir finden die Datei /etc/mysql/mysql.conf.d/mysqld.cnf .

Die Konfiguration ist wie folgt:

Bind-Adresse = 192.168.33.22 #Ihre Master-IP
Server-ID = 1 #In der Master-Slave-Architektur muss jeder Maschinenknoten eine eindeutige Server-ID haben
log_bin = /var/log/mysql/mysql-bin.log #Binlog öffnen

2. Starten Sie MySQL neu, damit die Konfigurationsdatei wirksam wird.

sudo systemctl MySQL neu starten

3. Erstellen Sie einen MySQL-Benutzer für die Master-Slave-Synchronisierung.

$ mysql -u root -p
Passwort:

##Erstellen Sie den Benutzer „slave1“ und geben Sie an, dass sich der Benutzer nur beim Host 192.168.33.33 anmelden kann.
mysql> ERSTELLEN SIE BENUTZER 'slave1'@'192.168.33.33' IDENTIFIZIERT DURCH 'slavepass';
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

##Geben Sie Slave1 die Berechtigung REPLICATION SLAVE.
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'192.168.33.33';
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

4. Fügen Sie MySQL eine Lesesperre hinzu

Um die Daten der Master-Datenbank mit denen der Slave-Datenbank konsistent zu halten, fügen wir MySQL zunächst eine Lesesperre hinzu, um es schreibgeschützt zu machen.

mysql> TABELLEN MIT LESESPERRUNG LESEN;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

5. Notieren Sie den Speicherort des MASTER REPLICATION LOG

Diese Informationen werden später verwendet.

mysql> MASTER-STATUS ANZEIGEN;
+------------------+----------+--------------+------------------+-------------------+
| Datei | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 613 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 Zeile im Satz (0,00 Sek.)

6. Exportieren Sie die vorhandenen Dateninformationen in die Master-DB

$ mysqldump -u root -p --all-databases --master-data > dbdump.sql

7. Zugriff auf die Lesesperre der Master-DB

mysql> TABELLEN ENTSPERREN;

8. Kopieren Sie die Datei dbdump.sql aus Schritt 6 auf den Slave

scp dbdump.sql [email protected]:/home/ubuntu

Operationen auf der Slave-Maschine

1. Ändern Sie die Konfigurationsdatei

Wir finden die Datei /etc/mysql/mysql.conf.d/mysqld.cnf .

Ändern Sie die Konfiguration wie folgt:

Bind-Adresse = 192.168.33.33 #Ihre Slave-IP
server-id = 2 #Eindeutige Server-ID in der Master-Slave-Struktur
log_bin = /var/log/mysql/mysql-bin.log #Binlog öffnen

2. Starten Sie MySQL neu, damit die Konfigurationsdatei wirksam wird

sudo systemctl MySQL neu starten

3. Aus der Master-Datenbank importieren. Exportieren Sie die Datei dbdump.sql, um Master-Slave-Daten konsistent zu machen

$ mysql -u root -p < /home/ubuntu/dbdump.sql

4. Stellen Sie zur Synchronisierung eine Verbindung zwischen Slave und Master her

$ mysql -u root -p
Passwort:

mysql> SLAVE STOPPEN;
Abfrage OK, 0 Zeilen betroffen, 1 Warnung (0,00 Sek.)

mysql> ÄNDERN SIE MASTER IN
 -> MASTER_HOST='192.168.33.22',
 -> MASTER_USER='slave1',
 -> MASTER_PASSWORD='Slavepass',
 -> MASTER_LOG_FILE='mysql-bin.000001',
 -> MASTER_LOG_POS=613;
Abfrage OK, 0 Zeilen betroffen, 2 Warnungen (0,01 Sek.)

mysql> START SLAVE;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

Die Werte von MASTER_LOG_FILE='mysql-bin.000001' und MASTER_LOG_POS=613 werden aus dem obigen SHOW MASTER STATUS abgerufen.

Nach dieser Einstellung können Sie eine Master-Slave-Synchronisation durchführen~

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Prinzip und Anwendung der MySQL-Master-Slave-Synchronisation
  • Master-Slave-Synchronisationskonfiguration der Mysql-Datenbank
  • Dieser Artikel zeigt Ihnen das Prinzip der MySQL Master-Slave-Synchronisation
  • MySQL Master-Slave-Synchronisationsmechanismus und Tracking-Prozess für Synchronisationsverzögerungsprobleme
  • Das Implementierungsprinzip der MySQL-Master-Slave-Synchronisation
  • So richten Sie die Master-Slave-Synchronisierung in der MySQL-Datenbank ein

<<:  Verwendung der hasOwnProperty-Methode des js-Attributobjekts

>>:  JavaScript-Code zur Implementierung der Weibo-Batch-Unfollow-Funktion

Artikel empfehlen

Sprechen Sie über implizite Konvertierung in MySQL

Im Laufe der Arbeit werden Sie auf viele Fälle im...

React Native JSI implementiert Beispielcode für RN und native Kommunikation

Inhaltsverzeichnis Was ist JSI Was ist anders an ...

Detaillierte Erklärung zur Verwendung von JavaScript WeakMap

Ein WeakMap-Objekt ist eine Sammlung von Schlüsse...

Teilen Sie die Fallstricke von MySQLs current_timestamp und ihre Lösungen

Inhaltsverzeichnis MySQLs current_timestamp-Falle...

So implementieren Sie die Docker-Volume-Montage

Die Erstellung des einfachsten „Hello World“-Ausg...

Detaillierte Analyse der MySQL Master-Slave-Replikation

Vorwort: In MySQL sollte die Master-Slave-Archite...