Detaillierte Erläuterung der MySQL Master-Slave-Datenbankkonstruktionsmethode

Detaillierte Erläuterung der MySQL Master-Slave-Datenbankkonstruktionsmethode

Dieser Artikel beschreibt, wie man eine MySQL Master-Slave-Datenbank erstellt. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

Der Master-Slave-Server ist eine sehr gute Lösung für die Echtzeit-Datensynchronisierung und -sicherung von MySQL. Mittlerweile verwenden alle großen, mittleren und kleinen Websites die MySQL-Datenbank-Master-Slave-Serverfunktion, um eine asynchrone Sicherung der Website-Datenbank durchzuführen. Jetzt stellen wir die Konfigurationsschritte für den Master-Slave-Server vor.

Für die MySQL-Master-Slave-Replikation sind mindestens zwei MySQL-Dienste erforderlich. Natürlich können MySQL-Dienste auch auf verschiedene Server verteilt werden oder es können mehrere Dienste auf einem Server gestartet werden.

(1) Stellen Sie zunächst sicher, dass die MySQL-Versionen auf dem Master- und Slave-Server identisch sind

(2) Richten Sie auf dem Master-Server ein Slave-Datenbankkonto ein und erteilen Sie mit REPLICATION SLAVE Berechtigungen, beispielsweise:

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'192.168.0.99' IDENTIFIZIERT DURCH
'123456';
Abfrage OK, 0 Zeilen betroffen (0,13 Sek.)

(3) Ändern Sie die Konfigurationsdatei my.cnf der Hauptdatenbank, aktivieren Sie BINLOG und legen Sie den Wert der Server-ID fest. Nach der Änderung müssen Sie den MySQL-Dienst neu starten.

[mysqld]
log-bin = /home/mysql/log/mysql-bin.log
Server-ID = 1

(4) Sie können dann den aktuellen Binärprotokollnamen und den Offset des Masterservers abrufen. Der Zweck dieser Operation besteht darin, Daten von diesem Punkt wiederherzustellen, nachdem die Slave-Datenbank gestartet wurde.

mysql> Masterstatus anzeigenG;
*************************** 1. Reihe ***************************
Datei:mysql-bin.000003
Position: 243
Binlog_Do_DB:
Binlog_Ignore_DB:
1 Zeile im Satz (0,00 Sek.)

(5) OK, jetzt können wir die Aktualisierung der Masterdaten beenden und ein Backup der Masterdatenbank erstellen. Wir können die Daten mit mysqldump in die Slavedatenbank exportieren. Natürlich können Sie die Datendatei auch mit dem Befehl cp direkt in die Slavedatenbank kopieren.

Beachten Sie, dass Sie vor dem Exportieren von Daten die Lesesperre für die primäre Datenbank aktivieren sollten, um die Datenkonsistenz sicherzustellen.

mysql> Tabellen mit Lesesperre leeren;
Abfrage OK, 0 Zeilen betroffen (0,19 Sek.)

Dann mysqldump

mysqldump -h127.0.0.1 -p3306 -uroot -p test > /home/chenyz/test.sql

Am besten stellen Sie den Schreibvorgang wieder her, nachdem die primäre Datenbank gesichert wurde.

mysql> Tabellen entsperren;
Abfrage OK, 0 Zeilen betroffen (0,28 Sek.)

(6) Kopiere die Datei test.sql aus der Master-Datensicherung in die Slave-Datenbank und importiere sie

(7) Ändern Sie dann die Datei my.cnf der Slave-Datenbank, fügen Sie den Parameter Server-ID hinzu, geben Sie den für die Replikation verwendeten Benutzer, die IP und den Port des Master-Datenbankservers sowie die Datei und den Speicherort an, an denen das Replikationsprotokoll ausgeführt werden soll.

[mysqld]
Server-ID = 2
log_bin = /var/log/mysql/mysql-bin.log
Master-Host =192.168.1.100
Master-Benutzer = Test
Master-Passwort = 123456
Master-Port =3306
Master-Verbindungswiederholung = 60
replizieren-do-db =test

(8) Starten Sie auf dem Slave-Server den Slave-Prozess

mysql> Slave starten;

(9) Überprüfen Sie den Slave-Server mit dem Befehl show salve status

mysql> SLAVE-STATUS ANZEIGEN G
*************************** 1. Reihe ***************************
Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet
Master_Host: lokaler Host
Master_Benutzer: root
Master_Port: 3306
Verbindungswiederholung: 3
Master_Log_File:mysql-bin.003
Read_Master_Log_Pos: 79
Relay_Log_File: gbichot-relay-bin.003
Relay_Log_Pos: 548
Relay_Master_Log_File:mysql-bin.003
Slave_IO_Running: Ja
Slave_SQL_Running: Ja

(10) OK, jetzt können wir einige Update-Operationen auf unserem Master-Server durchführen und dann prüfen, ob das Update auf dem Slave-Server abgeschlossen wurde.

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“, „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“ und „Zusammenfassung der allgemeinen MySQL-Funktionen“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • Verwenden von Docker-Containern zum Erstellen einer MySql-Master-Slave-Replikation
  • MySQL 5.7.18 Master-Slave-Replikations-Setup (ein Master und ein Slave) Tutorial mit ausführlicher Erklärung
  • Tutorial zum Erstellen einer Master-Slave-Replikationsarchitektur für MySQL 5.7 Docker
  • Detaillierte Erläuterung der Konstruktion der Lese-/Schreibtrennung bei der MySQL-Master-Slave-Replikation
  • Implementierungsschritte zum Erstellen einer MySQL Master-Slave-Replikationsumgebung basierend auf Docker
  • Implementierungsideen und Schritte für die MySQL-Master-Slave-Konstruktion (mehrere Master und ein Slave)

<<:  Detaillierte Erklärung zur Verwendung von Docker zum Erstellen einer Entwicklungsumgebung für Laravel- und Vue-Projekte

>>:  Detaillierte Erläuterung der benutzerdefinierten Anweisungen zur Vue.js-Quellcodeanalyse

Artikel empfehlen

Vue3 + TypeScript-Entwicklungszusammenfassung

Inhaltsverzeichnis Vue3 + TypeScript lernen 1. Um...

Einige Schlussfolgerungen zur Entwicklung mobiler Websites

Die mobile Version der Website sollte zumindest ü...

Analysieren Sie, wie eine SQL-Abfrageanweisung in MySQL ausgeführt wird

Inhaltsverzeichnis 1. Übersicht über die logische...

So erweitern Sie die Festplattenpartition für das CentOS-System

Problem/Fehler/Szenario/Anforderung Die Festplatt...

Detaillierte Erläuterung der Verwendung des MySQL-Auswahl-Cache-Mechanismus

Der MySQL-Abfragecache ist standardmäßig aktivier...

Beispielcode zum Ändern des Textstils der Eingabeaufforderung in HTML

Auf vielen Websites wird im Eingabefeld Hinweiste...

Zusammenfassung häufig verwendeter Operatoren und Funktionen in MySQL

Lassen Sie uns zuerst die Datentabelle erstellen....

MySQL 5.7.10 Installationsdokumentation Tutorial

1. Installieren Sie Abhängigkeitspakete yum -y in...

Wofür wird jQuery verwendet? jQuery ist eigentlich ein js-Framework

Einführung in jQuery Die jQuery-Bibliothek kann e...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.20 winx64

In diesem Artikel erfahren Sie mehr über die Inst...

Windows 2019 Aktivierungs-Tutorial (Office2019)

Vor ein paar Tagen habe ich erfahren, dass die of...

Wir treiben IE6 alleine in den Untergang

Tatsächlich fragen wir uns jeden Tag, wann IE6 wi...

JavaScript imitiert den Jingdong-Karusselleffekt

In diesem Artikel wird der spezifische Code für J...