Konfiguration der MySQL-Master/Slave-Datenbanksynchronisierung und häufige Fehler

Konfiguration der MySQL-Master/Slave-Datenbanksynchronisierung und häufige Fehler

Da die Anzahl der Besuche zunimmt, werden bei einigen zeitaufwändigen Datenbanklesevorgängen im Allgemeinen Schreib- und Lesevorgänge getrennt, um den Druck auf die Datenbank zu verringern. Die Datenbank-Engine verwendet im Allgemeinen die Master/Slave-Architektur. Durch die Implementierung der Master-Slave-Konfiguration des MySQL-Servers kann eine Trennung von Lesen und Schreiben erreicht werden. Darüber hinaus können nach dem Absturz der Hauptdatenbank Daten aus der Standby-Datenbank wiederhergestellt werden, um eine Unterbrechung des Website-Zugriffs zu vermeiden. Nachfolgend finden Sie eine kurze Beschreibung des Konfigurationsprozesses für den MySQL Master-Slave-Server.

Zuerst müssen Sie den MySQL-Dienst auf zwei Maschinen im selben LAN installieren (natürlich können Sie auch eine Maschine verwenden, um zwei Maschinen zu virtualisieren).

Host A: 192.168.1.100

Slave B: 192.168.1.101

Es kann mehrere Slaves geben.

1. Melden Sie sich zunächst bei Host A an und führen Sie den folgenden Befehl aus, um Slave-Berechtigungen zu erteilen. Wenn mehrere Cluster-Rechner vorhanden sind, führen Sie ihn mehrmals aus:

mysql>GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.1.101' IDENTIFIZIERT DURCH '123456';

2. Öffnen Sie my.cnf von Host A und geben Sie die folgenden Konfigurationsparameter ein:

server-id = 1 #Host-ID, Integer log_bin = /var/log/mysql/mysql-bin.log #Stellen Sie sicher, dass diese Datei beschreibbar ist read-only = 0 #Host, sowohl Lesen als auch Schreiben sind möglich binlog-do-db = test #Daten müssen gesichert werden, mehrere Zeilen schreiben binlog-ignore-db = mysql #Datenbanken, die nicht gesichert werden müssen, mehrere Zeilen schreiben

3. Öffnen Sie my.cnf von Slave B und geben Sie die folgenden Konfigurationsparameter ein:

Server-ID = 2
log_bin = /var/log/mysql/mysql-bin.log
Master-Host =192.168.1.100
Master-Benutzer = Sicherung
Master-Passwort =123456
Master-Port =3306
master-connect-retry=60 #Wenn der Slave-Server feststellt, dass der Master-Server getrennt ist, die Zeitdifferenz (in Sekunden) zur Wiederherstellung der Verbindung
replicate-do-db =test #Repliziert nur eine bestimmte Datenbank replicate-ignore-db=mysql #Repliziert keine bestimmte Datenbank

4. Datenbank synchronisieren

Starten Sie nach der obigen Konfiguration Host A und Slave B jeweils neu, um eine automatische Synchronisierung zu erreichen.

5. Überprüfung

Auf Host A, mysql>show master status\G;

Diesen Inhalt können Sie in etwa sehen

Datei:mysql-bin.000001
Position: 1374
Binlog_Do_DB: Test
Binlog_Ignore_DB: mysql

Führen Sie im Slave B Folgendes aus: mysql>show slave status\G;

Der angezeigte Inhalt ist wie unten dargestellt:

Sie können sehen, dass das Element „Slave_IO_State“ „Warten auf Senden eines Ereignisses durch den Master“ lautet und beide Elemente im roten Kreis „Ja“ lauten. Daher kann grundsätzlich festgestellt werden, dass die Konfiguration erfolgreich war.

Darüber hinaus können Sie auf Host A einige INSERT , UPDATE - und DELETE -Operationen ausführen, um zu sehen, ob die Daten auf Host B geändert wurden.

Häufige Fehler

1. Der Master fällt aus. Nach der Reparatur und dem Neustart kann der Slave nicht mit dem Master synchronisiert werden.

Fehler: Got fatal error 1236 from master when reading data from binary log

Grund: Nach dem Neustart des Masters wird das MySQL-Binlog neu generiert und die entsprechende Datensatzposition ändert sich

Lösung:

-Master:

mysql > Protokolle leeren;
mysql > Masterstatus anzeigen;

Notieren Sie die Datei- und Positionswerte

-Sklave:

mysql > Slave stoppen;
mysql > ÄNDERN SIE MASTER IN MASTER_LOG_FILE='mysql-bin.000049',MASTER_LOG_POS=1359;
mysql> Slave starten;
mysql > Slave-Status anzeigen\G;

2. Der Slave fällt aus, die Einstellungen sind korrekt, aber er kann nicht initialisiert werden

Fehler: ERROR 1201 (HY000): Could not initialize master

Lösung:

-Master:

mysql > Protokolle leeren;
mysql > Masterstatus anzeigen;

Notieren Sie die Datei- und Positionswerte

-Sklave:

mysql > Slave zurücksetzen;
mysql > ändere Master in master_host='192.168.10.100',master_user='test',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=106;
mysql> Slave starten;
mysql > Slave-Status anzeigen\G;

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Optimierungsmethode für das MySQL-Synchronisierungsproblem mit großer Slave-Verzögerung
  • Grundlegendes Tutorial zum Lösen von Slave-Latenzproblemen in MySQL
  • Analyse von Verzögerungen bei der Slave-Überwachung in MySQL
  • MySQL Master-Slave-Daten sind inkonsistent, Eingabeaufforderung: Slave_SQL_Running: Keine Lösung
  • Ein praktischer Bericht über die Wiederherstellung einer MySQL Slave-Bibliothek
  • Detaillierte Erklärung des Parameters slave_exec_mode in MySQL
  • Installations- und Konfigurationsdetails zur Master-Slave-Synchronisierung der MySQL5.6-Datenbank (Master/Slave)
  • Lösung für MySQL Slave, der Oom-Killer auslöst
  • MySQL-Slave verzögert die Fremdschlüsselprüfung und die automatische Inkrementsperre für eine Spalte

<<:  Sicherheitsüberlegungen zur Windows-Serververwaltung

>>:  Vollständiger Code von Vue + iView zur Realisierung der Excel-Upload-Funktion

Artikel empfehlen

Detaillierte Erklärung der Stammverzeichniseinstellungen in nginx.conf

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

Fassen Sie die häufig verwendeten n-ten-Kind-Selektoren zusammen

Vorwort In der Front-End-Programmierung verwenden...

So installieren Sie Nginx in Docker

Installieren Sie Nginx auf Docker Nginx ist ein l...

Über MySQL innodb_autoinc_lock_mode

Der Parameter innodb_autoinc_lock_mode steuert da...

JavaScript zum Erzielen eines elastischen Navigationseffekts

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

Ein paar Dinge zu favicon.ico (am besten im Stammverzeichnis ablegen)

Öffnen Sie eine beliebige Webseite, zum Beispiel ...

MySQL Workbench herunterladen und verwenden Tutorial detaillierte Erklärung

1. MySQL Workbench herunterladen Workbench ist ei...

So installieren Sie pyenv unter Linux

Voraussetzungen Git muss installiert werden Insta...

Eine kurze Analyse der Verwendung des HTML-Webpack-Plugins

Wenn Sie zum Starten der Seite das Plugin „html-w...

So implementieren Sie Seitensprünge in einem Vue-Projekt

Inhaltsverzeichnis 1. Erstellen Sie ein Vue-CLI-S...

MySQL-Fehlernummer 1129 – Lösung

SQLyog stellt eine Verbindung zu MySQL her, Fehle...

So migrieren Sie MySQL-Daten richtig nach Oracle

In der MySQL-Datenbank gibt es eine Tabelle Stude...

Eine kurze Einführung in die Abfrageeffizienz von MySQL-Speicherfeldtypen

Die Suchleistung von der schnellsten bis zur lang...

CSS3 realisiert den roten Umschlag-Shaking-Effekt

Es besteht die Anforderung, den Schütteleffekt de...