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

Teilen Sie 5 hilfreiche CSS-Selektoren, um Ihr CSS-Erlebnis zu bereichern

Dank unserer umfassenden CSS-Erfahrung als Webdesi...

Anwendung von HTML und CSS in Flash

Anwendung von HTML und CSS in Flash: Ich habe zufä...

Das Implementierungsprinzip der MySQL-Master-Slave-Synchronisation

1. Was ist MySQL Master-Slave-Synchronisierung? W...

Welche Szenarien sind für JS-Pfeilfunktionen nicht geeignet?

Inhaltsverzeichnis Überblick Definieren von Metho...

Lösungen für das Problem der Tabellenschachtelung und Rahmenzusammenführung

【Frage】 Wenn die äußere und die innere Tabelle ve...

So konfigurieren Sie mehrere Projekte mit demselben Domänennamen in Nginx

Es gibt zwei Möglichkeiten, mit Nginx mehrere Pro...

Zusammenfassung der Ereignisse, die Browser registrieren können

HTML-Ereignisliste Allgemeine Ereignisse: onClick ...

Detaillierte Erklärung inkompatibler Änderungen von Komponenten in vue3

Inhaltsverzeichnis Funktionale Komponenten So sch...

Detaillierte Erklärung der Stammverzeichniseinstellungen in nginx.conf

Bei der Konfiguration von nginx.conf treten immer...