Studiennotizen zur MySQL Master-Slave-Konfiguration

Studiennotizen zur MySQL Master-Slave-Konfiguration

● Ich hatte vor, einige Cloud-Daten zu kaufen, um für ein gewisses Maß an Sicherheit für mein neues Projekt zu sorgen. Nachdem ich eine Runde zwischen Alibaba Cloud und Tencent Cloud gesucht hatte, kam ich zu dem Schluss, dass sie zu teuer sind. Ist es nicht so, dass die Daten gesichert werden? Dann kann ich auch gleich selbst ein Backup erstellen.

● Ich habe zwei Raspberry Pis zu Hause, also kann ich MySQL einfach darauf sichern. Es gibt Tutorials online, also fange ich gleich an. Ich habe mehrere Artikel zu Segmentfault MySQL durchsucht und das darin Beschriebene befolgt, aber natürlich ohne Erfolg. Wäre es erfolgreich gewesen, hätte ich diesen Artikel nicht geschrieben. PS: Ihre Tutorials sind alle korrekt.

● Nun beginnen wir mit der Konfiguration der Master- und Slave-Server, genau wie in den Online-Tutorials, denn das ist es, was ich befolgt habe.

1. Mastereinstellungen (Master)

Ändern Sie die MySQL-Konfigurationsdatei, normalerweise in /etc/mysql/my.conf

server-id=1 // MySQL-ID-Kennung festlegenlog-bin=/var/lib/mysql/mysql-bin //log-bin-Protokolldatei, Master-Slave-Sicherung wird mithilfe dieses Protokolldatensatzes implementiert#binlog-do-db=mysql1 #Name der zu sichernden Datenbank. Wenn Sie mehrere Datenbanken sichern, setzen Sie diese Option einfach wiederholt#binlog-ignore-db=mysql2 #Name der Datenbank, die nicht gesichert werden muss. Wenn Sie mehrere Datenbanken sichern, setzen Sie diese Option einfach wiederholt#log-slave-updates=1 #Dieser Parameter muss hinzugefügt werden, wenn die Slave-Bibliothek auch die Master-Bibliothek anderer Slave-Bibliotheken ist, da sonst die aktualisierten Datensätze nicht in die Binärdatei in Binglog geschrieben werden#slave-skip-errors=1 #Fehler überspringen und Replikationsvorgang fortsetzen (optional)

Fügen Sie 2 Konten für die Synchronisierung im Haupt-MySQL hinzu

mysql>gewähre Replikations-Slave auf *.* an 'sync-1'@'%', identifiziert durch '123456';

mysql>gewähre Replikations-Slave auf *.* an 'sync-2'@'%', identifiziert durch '123456';

Starten Sie msql neu

mysql>show master status; //Sie können den Status des Master-MySQL anzeigen

2. Slave-Einstellungen

Ändern Sie die MySQL-Konfigurationsdatei my.conf. Die Konfigurationsmethoden der beiden Slave-Knoten sind identisch.

Server-ID = 2
#log-bin=/var/lib/mysql/mysql-bi //Keine Notwendigkeit, eine Protokolldatei von MySQL einzurichten

Befehlsparameter in MySQL hinzufügen, master_log_file und master_log_pos können in Master-MySQL mit Show Master Status abgefragt werden

mysql>ändere Master in master_host='192.168.145.222',master_user='sync-1',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=308; 

mysql>start slave //Startmysql>show slave status\G //Status abfragen, wenn sowohl Slave_IO_Running als auch Slave_IO_Running ja sind, bedeutet dies Erfolg

3. Probleme bei der Einrichtung

Letzte_Fehlernummer: 1146

Als ich den Slave einrichtete, hatte mein Master-MySQL bereits eine Tabelle. Als die Tabelle erstellt wurde, gab es keinen Datensatz im Binärprotokoll binlog, sodass der Slave-MySQL keine Daten schreiben konnte. Zu diesem Zeitpunkt musste ich die Datenbankdatei manuell in den Slave-MySQL importieren. Der Grund dafür war, dass in den Online-Tutorials alle neu installierten Master-MySQL und Slave-MySQL gezeigt wurden, sodass es kein Problem mit vorhandenen Daten gab.

Letzte_Fehlernummer: 1062

Fehler „Doppelter Eintrag „xxxxx“ für Schlüssel „PRIMARY“ bei Abfrage

Primärschlüsselkonflikt. Dieses Problem ist komplizierter. Es muss daran liegen, dass die Tabelleneinstellungen falsch sind. Später habe ich auf Stack Overflow eine Lösung für dieses Problem gefunden.

# auf Slave
mysql> Slave stoppen;
mysql> Berechtigungen leeren;
# auf Master-Rest-Master
mysql> Master zurücksetzen;
# auf Sklave;
mysql> Slave zurücksetzen;
mysql> Slave starten;

Dies ist das Ende dieses Artikels über die Studiennotizen zur MySQL-Master-Slave-Konfiguration. Für detailliertere Informationen zur MySQL-Master-Slave-Konfiguration suchen Sie bitte nach früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Zeichnen Sie den gesamten Prozess der MySQL-Master-Slave-Konfiguration basierend auf Linux auf
  • MySQL5.7 Master-Slave-Konfigurationsbeispielanalyse
  • Details und Beispiele zur Docker MySQL Master-Slave-Konfiguration
  • Eine kurze Anmerkung zur MySQL Master-Slave-Konfigurationslösung
  • Gemeinsame Nutzung der Master-Slave-Konfigurationsmethode der MySQL-Datenbank
  • Mysql implementiert Master-Slave-Konfiguration und Multi-Master-Multi-Slave-Konfiguration

<<:  Detaillierte Erläuterung des Quellcodes der vue.$set()-Methode von Vue

>>:  JavaScript implementiert das Ändern der Farbe einer Webseite über einen Schieberegler

Artikel empfehlen

Einführung in den HTML-Standard für chinesische Zeichenkodierung

In HTML müssen Sie die von der Webseite verwendet...

Implementierung der Docker-Bereitstellung von Webprojekten

Im vorherigen Artikel wurde der Docker-Dienst ins...

Eine kurze Analyse der parallelen WriteSet-Replikation von MySQL

【Historischer Hintergrund】 Ich arbeite seit drei ...

Lösen Sie das MySQL 5.7.9 Version sql_mode=only_full_group_by Problem

MySQL 5.7.9 Version sql_mode=only_full_group_by P...

Detaillierte Erklärung des MySQL-Datenbankindex

Inhaltsverzeichnis 1. Einführung in den MySQL-Ind...

Einführung in den B-Tree-Einfügeprozess

Im vorherigen Artikel https://www.jb51.net/articl...

VUE + SpringBoot implementiert die Paging-Funktion

Dieser Artikel stellt hauptsächlich vor, wie pagi...

MySQL-Grundlagen-Tutorial: Detaillierte Erklärung der DML-Anweisungen

Inhaltsverzeichnis DML-Anweisungen 1. Datensätze ...

Organisieren Sie die allgemeinen Wissenspunkte von CocosCreator

Inhaltsverzeichnis 1. Szene laden 2. Knoten suche...

Implementierungsprinzip der MySQL MyISAM-Standardspeicher-Engine

Standardmäßig generiert die MyISAM-Tabelle drei D...

Wissenspunkte zum Prinzip der MySQL-Parallelitätskontrolle

Mysql ist eine gängige relationale Open-Source-Da...

vue+element-ui implementiert die Kopfnavigationsleistenkomponente

In diesem Artikel wird der spezifische Code von v...