Detaillierte Erläuterung des MySQL-Clusters: Implementierung einer Master- und einer Slave-Architektur

Detaillierte Erläuterung des MySQL-Clusters: Implementierung einer Master- und einer Slave-Architektur

Experimentelle Umgebung:

1. Drei CentOS 7-Server

2. mysql5.7.26 (alle drei Maschinen sind über yum installiert)

Serverliste

7.100.222.111 Master
47.103.211.5 Sklave1
47.103.98.221 Sklave2

Wenn Sie MySQL noch nicht installiert haben, lesen Sie bitte das Installations-Tutorial: MySQL-Installation

1. Überblick:

Architekturdiagramm:

Diese Art der Architektur wird häufig von Start-ups verwendet und eignet sich auch gut für eine spätere Erweiterung.

Merkmale:

1. Es kann den Lesedruck lindern.

2. Kostengünstige, schnelle und bequeme Bereitstellung

3. Lese- und Schreibtrennung

4. Sie können den Druck beim Lesen der Datenbank auch verringern, indem Sie rechtzeitig Slaves hinzufügen

5. Single Point of Failure der Hauptdatenbank

6. Probleme mit der Datenkonsistenz (verursacht durch Synchronisierungsverzögerungen)

7. Sobald der Host ausgefallen ist, können keine Schreibvorgänge mehr ausgeführt werden

2. Einen Cluster aufbauen

1. Ändern Sie die Konfigurationsdatei

Verwenden Sie die folgenden Befehle, um die Konfigurationsdateien auf den drei Servern entsprechend zu ändern.

$ vim /etc/my.cnf

Fügen Sie den MySQL-Konfigurationsdateien /etc/my.cnf der drei Server jeweils den folgenden Inhalt hinzu:

Meister Sklave1 Sklave2

Server-ID = 1

#Öffnen Sie das Binlog-Protokoll in der Hauptdatenbank

log-bin=/var/lib/mysql/mysql-bin

Server-ID = 2 Server-ID = 3

2. Erstellen Sie einen Replikationsbenutzer in der Masterdatenbank

Geben Sie den folgenden Befehl unter dem MySQL-Befehl ein, um einen Benutzer für die Slave-Bibliothek (Slave) zu erstellen, um die Master-Bibliothek (Master) zu kopieren.

mysql> gewähre Replikations-Slave auf *.* an 'test'@'%', identifiziert durch '123456';
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)
 
mysql> Berechtigungen leeren;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

3. Verknüpfen Sie die Slave-Datenbank mit der Master-Datenbank

Verwenden Sie den folgenden Befehl, um den Status der Masterbibliothek anzuzeigen

mysql> Masterstatus anzeigen;

Geben Sie die folgenden Informationen aus. Ihre können natürlich von meinen abweichen

mysql> Masterstatus anzeigen;
+------------------+----------+--------------+------------------+-------------------+
| Datei | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 5141037 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 Zeile im Satz (0,00 Sek.)

Wie Sie aus den obigen Ergebnissen ersehen können, müssen Sie hier nur auf Datei und Position achten. Die anderen beiden sind Whitelist und Blacklist, also welche Datenbanken synchronisiert werden und welche nicht. Sie können sie nach Ihren Bedürfnissen einstellen. Nachdem Sie die ersten beiden Felder oben aufgezeichnet haben ().

Führen Sie die folgenden Befehle auf den beiden Slaves aus:

mysql> ändere Master in master_host='47.100.222.111', master_port=3306, master_user='test', master_password='123456', master_log_file='mysql-bin.000002', master_log_pos=5141037;
 
mysql> Berechtigungen leeren;
 
mysql> Slave-Start;

Nachdem die Ausführung abgeschlossen ist, führen Sie die folgenden Anweisungen in der Slave-Bibliothek weiter aus:

mysql> Slave-Status anzeigen\G;

Es werden folgende Informationen ausgegeben:

*************************** 1. Reihe ***************************
Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet
Master_Host: 47.100.225.121
Master_User: Helfer
Master_Port: 3306
Verbindungswiederholung: 60
Master_Log_File:mysql-bin.000002
Read_Master_Log_Pos: 5141037
Relay_Log_File: slave1-relay-bin.000003
Relay_Log_Pos: 5140628
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Ja
Slave_SQL_Running: Ja
Replicate_Do_DB:
Replikat_Ignorieren_DB:
----------Folgendes wird weggelassen

Wenn Slave_IO_Running: und Slave_SQL_Running: beide JA sind, war die Konfiguration erfolgreich.

An diesem Punkt ist die Konstruktion eines Masters und zweier Slaves abgeschlossen, und die Installation eines Masters und mehrerer Slaves verläuft ähnlich. Sie können eine Datenbank oder eine Tabelle in der Masterdatenbank erstellen und die Slavedatenbank repliziert sie.

Oben finden Sie eine ausführliche Erklärung und Integration der vom Herausgeber vorgestellten MySQL-Cluster-Architektur mit einem Master und mehreren Slaves. Ich hoffe, dass sie für alle hilfreich ist. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • MySQL-Konfiguration Master-Slave-Server (ein Master und mehrere Slaves)
  • Implementierungsschritte für die Bereitstellung von MySQL mit einem Master und mehreren Slaves

<<:  Lösung für den internen Serverfehler Nginx 500

>>:  Tutorial zum Anpassen von RPM-Paketen und Erstellen von Yum-Repositorys für Centos

Artikel empfehlen

So konfigurieren Sie den Tomcat-Server für Eclipse und IDEA

Tomcat-Serverkonfiguration Jeder, der das Web ken...

Die CSS-Priorität der Webseite wird für Sie ausführlich erklärt

Bevor wir über die CSS-Priorität sprechen, müssen...

CSS3 + Bézierkurve zum Erzielen eines skalierbaren Eingabesuchfeldeffekts

Und hier nun ohne weitere Umschweife die Renderin...

Erläuterung unveränderlicher Werte in React

Inhaltsverzeichnis Was sind unveränderliche Werte...

Verwenden von js, um den Effekt eines Karussells zu erzielen

Lassen Sie uns heute darüber sprechen, wie Sie mi...

Detaillierter Installationsprozess und Prinzip des Vue-Routers

Inhaltsverzeichnis 1. Implementierungsprinzip des...

4 Möglichkeiten zum Ändern des MySQL-Root-Passworts (Zusammenfassung)

Methode 1: Verwenden Sie den Befehl SET PASSWORD ...