Heim >Datenbank >MySQL-Tutorial >MySQL implementiert die Master-Slave-Replikationsfunktion
centos7.3, MySQL5.7
MySQL-Installationsreferenz vorheriger Artikel https://www .jianshu.com/p/452aa99c7476 hat eine Erklärung.
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
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 #开启二进制日志文件
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...';
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
Starten Sie sowohl den Master-Server als auch den Slave-Server neu
service mysqld restart
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:
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:
Erstellen Sie unten eine neue Tabelle, um zu sehen, ob sie synchronisiert werden kann:
#Slave-Server anzeigenSie 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!