MySQL8.0.18-Konfiguration mehrerer Master und eines Slaves

MySQL8.0.18-Konfiguration mehrerer Master und eines Slaves

1. Realistischer Hintergrund

Es gibt 4 Hosts, die alle automatisch Daten erfassen und in ihrer MySQL-Datenbank speichern können, und es gibt einen weiteren Hauptserver mit hoher Konfiguration, der ausschließlich der Datenverarbeitung dient. Diese fünf Maschinen befinden sich häufig nicht im selben Netzwerksegment. Es besteht jedoch die Hoffnung, dass die vier zum Sammeln von Daten verwendeten Hosts automatisch Daten vom Hauptserver sammeln können, sobald sie sich im selben Netzwerksegment befinden. Die Umgebung ist für diesen Zweck konfiguriert.

2. Vereinbarung

  • Slave, Master-Server
  • master1, ein Host zum Sammeln von Daten
  • master2, ein Host zum Sammeln von Daten
  • master3, ein Host zum Sammeln von Daten
  • master4, ein Host zum Sammeln von Daten

3. Konfigurieren Sie den Master

3.1. Startparameter konfigurieren

Bei mehreren Mastern müssen Sie lediglich darauf achten, dass die Server-ID inkonsistent ist und den Rest nach Ihren eigenen Bedürfnissen konfigurieren.

[mysqld]
# Serverkennung, stellen Sie sicher, dass jede Serverkennung unterschiedlich ist Server-ID = 1000

# Auf dem Mastercomputer muss log_bin aktiviert sein
# mysql-bin ist ein benutzerdefinierter Name und es werden Dateien wie mysql-bin.index, mysql-bin.000001 usw. generiert log_bin=mysql-bin

# Ablaufzeit des Binärprotokolls (Einheit: Tag), der Standardwert ist 0, dh es läuft nicht ab expire_logs_days = 0

# Fehlerprotokoll log-error=/var/lib/mysql/mysql-error.log

# Der Maximalwert einer einzelnen log_bin-Datei. Wenn der Maximalwert erreicht ist, wird das Suffix der neu erstellten Datei automatisch erhöht, z. B. mysql-bin.000002
max_binlog_size = 100 M

#mysql-Installationspfad basedir=/var/lib/mysql

#mysql-Datenpfad datadir=/var/lib/mysql

# Die Datenbank, in der der Master den Vorgang aufzeichnet, ist binlog_do_db=replication

# Datenbank wird vom Master ignoriert binlog_ignore_db=information_schema
binlog_ignore_db=Leistungsschema
binlog_ignore_db=sys
binlog_ignore_db=mysql

# Binärprotokoll-Speichermodus binlog_format=MIXED

# Maximaler Speicherwert des Blob-Typs (Einheit: Bytes, B)
# 1048576 B = 1 MB
max_allowed_package=1048576


# Konfiguration der Passwortkomplexität, erfordert Plugin # Die Passwortlänge muss mindestens 0 betragen
# validate_password_length=8

# Mindestanzahl an Groß- und Kleinbuchstaben # validate_password_mixed_case_count=1

# Die Mindestanzahl von Zahlen im Passwort# validate_password_number_count=1

# Die Mindestanzahl an Sonderzeichen im Passwort # validate_password_special_char_count=1

innodb_flush_log_at_trx_commit=0

[mysql]
Standardzeichensatz = utf8mb4

[Kunde]
Standardzeichensatz = utf8mb4

3.2. Starten Sie den Dienst neu, damit die Parameter wirksam werden

3.3. Als Root anmelden, Benutzer anlegen, Passwort zuweisen, autorisieren und Berechtigungen aktualisieren

Benutzerreplikation erstellen und Passwort vergeben:

Erstellen Sie den Benutzer „Replikation“@„%“, identifiziert mit dem mysql_native_password von „JINGhuaSHUIyue123,.“;

Wenn die Benutzererstellung fehlschlägt, ist der Benutzer möglicherweise bereits vorhanden. Wenn es nicht wichtig ist, können Sie den Benutzer löschen:

Benutzer „Replikation“@„%“ löschen;

Wenn Sie den Benutzer nicht löschen und neu erstellen, sondern nur das Passwort ändern möchten:

Benutzer „Replikation“@„%“ ändern, identifiziert mit mysql_native_password von „JINGhuaSHUIyue123,.“;

Gewähren Sie dem Benutzer die Berechtigungen für Replikations-Slaves:

gewähre 'Replikation'@'%' Replikations-Slave auf *.*;

Stellen Sie sicher, dass die Berechtigungen des Replikations-Slaves sofort wirksam werden, und aktualisieren Sie die Berechtigungen:

Berechtigungen leeren;

4. Konfigurieren Sie den Slave-Server

4.1. Startparameter konfigurieren

[mysqld]
# Serverkennung, stellen Sie sicher, dass jede Serverkennung unterschiedlich ist Server-ID = 2000

#mysql-Installationspfad basedir=D:\mysql

#mysql-Datenpfad datadir=D:\mysql\data

# replizierte Slave-Datenbank replicate_do_db=test

# Die vom Slave ignorierte Datenbank replicate_ignore_db=information_schema
replicate_ignore_db=Leistungsschema
replicate_ignore_db=mysql
replicate_ignore_db=sys

# Zeitüberschreitungsintervall für die Wiederverbindung des Slave-Netzwerks (Einheit: Sekunden)
slave_net_timeout=60

[mysql]

Standardzeichensatz = utf8

[Kunde]

Standardzeichensatz = utf8

4.2. Starten Sie den Dienst neu, damit die Parameter wirksam werden

5. Konfigurieren Sie mehrere Master und einen Slave

5.1. Überprüfen Sie den Masterstatus

Melden Sie sich als Root bei master1 an und achten Sie auf die Datei und Position:

Masterstatus anzeigen;
+------------------+----------+--------------+-------------------------------------------------+----------------------------------+
| Datei | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+-------------------------------------------------+----------------------------------+
| mysql-bin.000006 | 155 | Test | Informationsschema, Leistungsschema, Sys, MySQL | |
+------------------+----------+--------------+-------------------------------------------------+----------------------------------+

Melden Sie sich als Root bei master1 an und achten Sie auf die Datei und Position:

Masterstatus anzeigen;
+------------------+----------+--------------+-------------------------------------------------+----------------------------------+
| Datei | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+-------------------------------------------------+----------------------------------+
| mysql-bin.000005 | 155 | Test | Informationsschema, Leistungsschema, Sys, MySQL | |
+------------------+----------+--------------+-------------------------------------------------+----------------------------------+

Hinweis: Beim Starten von MySQL wird die Generierung eines neuen Log-Bins erzwungen, der Speicherort ist also 155.

5.2. Konfigurieren der Slave-Master-Beziehung

Prüfen Sie, ob weitere Restkonfigurationen vorhanden sind:

Slave-Status anzeigen\G;

Stoppen Sie den Slave und löschen Sie die restliche Konfiguration:

Sklave stoppen;
alle Slaves zurücksetzen;

Konfigurieren Sie den Replikationskanal "master1" entsprechend der Datei und Position von master1

ändere Master in
master_host = '112.124.1.100',
master_user = "Replikation",
Master-Port = 3306,
master_password = "Replikation",
master_log_file = "mysql-bin.000006",
master_log_pos = 155,
master_connect_retry = 15,
master_retry_count = 0
für Kanal „Master1“;

Konfigurieren Sie den Replikationskanal "master2" entsprechend der Datei und Position von master2

ändere Master in
master_host = '192.168.1.139',
master_user = "Replikation",
Master-Port = 3306,
Master-Passwort = "JINGhuaSHUIyue123,.",
master_log_file = "mysql-bin.000005",
master_log_pos = 155,
master_connect_retry = 15,
master_retry_count = 0
für Kanal „Master2“;
  • master_connect_retry: Verbindungsfehler, Wiederholungsintervall (Einheit: Sekunden)
  • master_retry_count: Die Anzahl der Wiederholungsversuche nach einem Verbindungsfehler. 0 bedeutet unbegrenzt.

5.3. Bereiten Sie den Tisch vor

Verwenden Sie vor dem Start DDL-Anweisungen in den Datenbanken der drei Maschinen, um die Tabellenstruktur zu definieren, und halten Sie die Tabellenstruktur konsistent, um die Konsistenz vor der Master-Slave-Replikation sicherzustellen, da sonst ein Fehler auftritt!

5.4. Slave starten und Slave-Status prüfen

Slave für Kanal „Master1“ starten;
Slave für Kanal „Master2“ starten;
Slave-Status anzeigen\G;

Beachten Sie, dass sowohl Slave_IO_Running als auch Slave_Slave_Running „Ja“ anzeigen müssen, um Erfolg anzuzeigen. Andernfalls beachten Sie die Fehlermeldung.

Dies ist das Ende dieses Artikels über die Konfiguration mehrerer Master und eines Slaves in MySQL 8.0.18. Weitere Informationen zu mehreren MySQL-Mastern und einem Slave finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Mysql implementiert Master-Slave-Konfiguration und Multi-Master-Multi-Slave-Konfiguration
  • Bidirektionale und kaskadierende MySQL-Multimasterreplikation

<<:  Zur grundlegenden Verwendung von HTML gehören Links, Stylesheets, Span und Div usw.

>>:  CSS-Overflow-Wrap – Verwendung neuer Eigenschaftswerte überall

Artikel empfehlen

Implementierungscode der HTML-Floating-Promptbox-Funktion

Allgemeine Formulareingabeaufforderungen belegen ...

CSS3-Implementierungscode für einfaches Karussellbildschneiden

Umsetzungsideen Erstellen Sie zunächst einen über...

Gedanken zu copy_{to, from}_user() im Linux-Kernel

Inhaltsverzeichnis 1. Was ist copy_{to,from}_user...

Warum MySQL das Löschen von Daten nicht empfiehlt

Inhaltsverzeichnis Vorwort InnoDB-Speicherarchite...

Implementierung eines einfachen Weihnachtsspiels mit JavaScript

Inhaltsverzeichnis Vorwort Ergebnisse erzielen Co...

Sortierfunktion für HTML-Tabellen per Mausklick

Effektbild: 1. Dateien importieren <script src...

Beispiel zum Referenzieren von Umgebungsvariablen in Docker Compose

In einem Projekt müssen Sie häufig Umgebungsvaria...

Warum brauchen wir Map, wenn wir in JavaScript bereits Object haben?

Inhaltsverzeichnis 1. Behandeln Sie Objekte nicht...

Drei Möglichkeiten zum Sperren und Entsperren von Benutzerkonten in Linux

Wenn in Ihrer Organisation bereits eine Kennwortr...

So erhalten Sie den Maximal- oder Minimalwert einer Zeile in SQL

Originaldaten und Zieldaten SQL-Anweisungen imple...

Semantik, Schreiben und bewährte Methoden für Link A

Die Semantik, der Schreibstil und die Best Practi...

Einige Erfahrungen in der Selbstkultivierung von Künstlern

Da der Einfluss des Unternehmens wächst und seine...