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

Webdesigner sollten Webseiten unter drei Aspekten optimieren

<br />Mit der zunehmenden Bandbreite werden ...

Zusammenfassung der 10 wichtigsten JavaScript-Interviewfragen (empfohlen)

1.Dies deutet auf 1. Wer ruft wen an? Beispiel: F...

Implementierung der Formatierung von Partitionen und der Einbindung in Centos7

Unter Linux treten häufig Situationen auf, in den...

CocosCreator allgemeines Framework-Design Ressourcenmanagement

Inhaltsverzeichnis Probleme mit der Ressourcenver...

Welche magischen Anwendungen haben CSS-Filter?

Hintergrund Grundlegende Konzepte CSS filter wend...

Ubuntu MySQL-Version auf 5.7 aktualisiert

Vor einigen Tagen teilte die Bibliothek mit, dass...

Zusammenfassung der Web-Frontend-Kenntnisse (persönliche praktische Erfahrung)

1. Als ich heute eine Seite erstellte, stieß ich a...

Unterschied zwischen HTML ReadOnly und Enabled

Das Textfeld mit dem ReadOnly-Attribut wird auf de...

Beispiel für die JavaScript-Funktion „CollectGarbage“

Sehen wir uns zunächst ein Beispiel für die Speic...

Der Prozess der Installation von Docker im Linux-System

In diesem Blog führe ich Sie in einfachen Schritt...

Beispielcode für die Batchbereitstellung von Nginx mit Ansible

1.1 Kopieren Sie das Nginx-Installationspaket und...