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

Feste Tabellenbreite table-layout: fest

Damit die Tabelle den Bildschirm (den verbleibende...

So kapseln Sie die Rich-Text-Komponente von WangEditor in Angular

Die Rich-Text-Komponente ist eine sehr häufig ver...

Detaillierte Anwendung des dynamischen Vue-Formulars

Überblick Es gibt viele Formularanforderungen im ...

Eine kurze Erläuterung der vier häufig verwendeten Speicher-Engines in MySQL

Einführung in vier häufig verwendete MySQL-Engine...

Tutorial zum Bereitstellen von nginx+uwsgi in Django-Projekten unter Centos8

1. Virtuelle Umgebung virtualenv installieren 1. ...

Implementierung des Docker-Buildings für Maven+Tomcat-Basisimages

Vorwort In der Java-Programmierung werden die mei...

Analyse der vier Transaktionsisolationsstufen in MySQL anhand von Beispielen

Vorwort Um bei Datenbankoperationen die Richtigke...

Vue+axios-Beispielcode zum Hochladen von Bildern und Erkennen von Gesichtern

Inhaltsverzeichnis Axios-Anfrage Qs-Verarbeitungs...

Detaillierte Analyse klassischer Fragen zu JavaScript-Rekursionsfällen

Inhaltsverzeichnis Was ist Rekursion und wie funk...

So importieren Sie Excel-Dateien in eine MySQL-Datenbank

In diesem Artikel erfahren Sie, wie Sie Excel-Dat...

SSH-Schlüsselpaare von einer oder mehreren Linux-Instanzen trennen

Schlüsselpaar trennen Trennen Sie SSH-Schlüsselpa...