Heim  >  Artikel  >  Datenbank  >  MySQL implementiert die Master-Slave-Replikationsfunktion

MySQL implementiert die Master-Slave-Replikationsfunktion

步履不停
步履不停Original
2019-06-19 14:43:582129Durchsuche

MySQL implementiert die Master-Slave-Replikationsfunktion

Umgebungsbeschreibung

centos7.3, MySQL5.7

Vorwort

MySQL-Installationsreferenz vorheriger Artikel https://www .jianshu.com/p/452aa99c7476 hat eine Erklärung.

Grundlegende Konzepte

Die integrierten Replikationsfunktionen von MySQL bilden die Grundlage für die Erstellung umfangreicher, leistungsstarker Anwendungen. Verteilen Sie Hunderte Millionen MySQL-Daten auf mehrere Systeme. Dieser Verteilungsmechanismus wird erreicht, indem die Daten eines bestimmten MySQL-Hosts auf andere Hosts (Slave) kopiert und erneut ausgeführt werden. Bei der Replikation fungiert ein Server als Server und ein oder mehrere andere Server fungieren als Slaves. Der Master schreibt Aktualisierungen in das Binärprotokoll und verwaltet einen Index der Dateien, um die Protokollrotation zu verfolgen. Diese Protokolle zeichnen Aktualisierungen auf, die an Slave-Server gesendet werden. Wenn ein Slave eine Verbindung zum Master herstellt, benachrichtigt er den Master über den Ort der letzten erfolgreichen Aktualisierung, die der Slave im Protokoll gelesen hat. Der Slave empfängt alle seitdem erfolgten Aktualisierungen und blockiert sie dann usw. Der Master benachrichtigt neue Aktualisierungen. Bitte beachten Sie, dass bei der Replikation alle Aktualisierungen der Replikationstabellen auf dem Masterserver vorgenommen werden müssen. Andernfalls müssen Sie darauf achten, Konflikte zwischen von Benutzern an Tabellen auf dem Master-Server vorgenommenen Aktualisierungen und Aktualisierungen an Tabellen auf dem Server zu vermeiden

Master-Slave-Replikationsimplementierung

Eins: Ändern Sie den Master-Server

Wenn MySQL gemäß dem von mir geschriebenen Artikel installiert ist, befindet sich die Konfigurationsdatei my.cnf im Verzeichnis /etc/. Wenn es nicht vorhanden ist, können Sie es mit dem Befehl whereis suchen. Fügen Sie die folgende Konfiguration unter der Konfigurationsdatei my.cnf hinzu

server_id=1 #指定MySQL的id
log-bin=mysql-bin #开启二进制日志文件

2. Erstellen Sie ein Replikationskonto

Führen Sie diesen Befehl im aus Hauptserver (alle sind hier erlaubt) Für den Adresszugriff empfiehlt es sich, ihn auf die Adresse des Slave-Servers einzustellen)

GRANT REPLICATION SLAVE ON *.* to 'replication'@'%' identified by 'Abc123...';

3. Slave-Server ändern

server_id=2
log-bin=mysql-bin
binlog_do_db=db_test#表示要同步的数据库

Beschreibung: binlog- ignore-db=test bedeutet unsynchronisierte Testdatenbank binlog_do_db=db_test #Stellt die zu synchronisierende Datenbank dar

4. Starten Sie MySQL neu

Starten Sie sowohl den Master-Server als auch den Slave-Server neu

service mysqld restart

5. Überprüfen Sie den Status des Master-Servers

show master status

Ergebnisse wie folgt:

Hier müssen einige Informationen aufgezeichnet werden, die bei der Konfiguration des Slave-Servers verwendet werden müssen. 6. Konfigurieren der Slave-Server (mit dem Master-Server verbinden)

change master to master_host='192.168.74.129',master_user='replication',master_password='Abc123...',master_log_file='mysql-bin.000001',master_log_pos=2041;

master_host ist die IP des Master-Servers master_port=3306 (Hier gibt es keine Konfiguration, der Standardwert ist 3306) master_user: Autorisierter Benutzer des Master-Servers, d. h. Der zuvor erstellte Benutzer Master master_password: Autorisierter Benutzer des Master-Servers entsprechendes Passwort master_log_file: Name der Master-Binlog-Datei master_log_pos: Positionswert in der Master-Binlog-Datei zum Positionswert Hier ist ein Hinweis: Wenn der Master-Server bereits viele Daten hat, müssen Sie diese zuerst benötigen Um die Daten des Master-Servers auf dem Slave-Server zu sichern, verwenden Sie dann den Befehl show master status, um den Ort aufzuzeichnen, an dem die Synchronisierung gestartet werden muss. #       7. Starten Sie die Replikation und führen Sie

start slave

auf dem Slave-Server aus. Der Befehl zum Stoppen lautet: Stop Slave. Die beiden eingekreisten Ergebnisse sind „Ja“, was darauf hinweist, dass die Master-Slave-Replikationskonfiguration erfolgreich ist. Wenn die Konfiguration fehlschlägt, können Sie die Fehlerinformationen in der MySQL-Protokolldatei überprüfen oder eine kurze Fehlermeldung mit dem obigen Befehl überprüfen:

下载 (2).jpg

Dies ist der Master- Slave-Server, den ich gerade konfiguriert habe. Der Hauptgrund für den Fehler ist, dass die UUID des MySQL-Servers in Konflikt steht. Der Grund ist, dass mein Slave-Server vom Master-Server kopiert wurde. Gehen Sie einfach zu /var/lib/mysql/auto.cnf und ändern Sie es. #Überprüfen Sie den aktuellen Status der Master-Slave-Ergebnisse:

下载 (3).jpg

Erstellen Sie unten eine neue Tabelle, um zu sehen, ob sie synchronisiert werden kann:

#Slave-Server anzeigen

下载 (5).jpg

下载 (6).jpgSie können sehen, dass es synchronisiert wurde

Weitere technische Artikel zum Thema MySQL finden Sie in der Spalte MySQL-Tutorial zum Lernen!

Das obige ist der detaillierte Inhalt vonMySQL implementiert die Master-Slave-Replikationsfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn