Heim  >  Artikel  >  Datenbank  >  MySQL-Datenverteilung: So implementieren Sie den Master-Slave-Replikationsmechanismus

MySQL-Datenverteilung: So implementieren Sie den Master-Slave-Replikationsmechanismus

WBOY
WBOYOriginal
2023-06-15 22:25:401072Durchsuche

MySql ist ein beliebtes relationales Datenbankverwaltungssystem. Die Datenreplikation wird häufig verwendet, um Datensicherung, Lastausgleich und hohe Verfügbarkeit zu erreichen. In MySql können Sie den Master-Slave-Replikationsmechanismus verwenden, um eine Datenverteilung zu erreichen, sodass mehrere Systeme auf dieselben Daten zugreifen können. In diesem Artikel wird die Implementierung des Master-Slave-Replikationsmechanismus in MySql vorgestellt.

1. Das Grundkonzept des Master-Slave-Replikationsmechanismus

Der Master-Slave-Replikationsmechanismus ist eine wichtige Funktion der MySql-Datenbank. Er kann dabei helfen, Daten auf dem Master-Server synchron zu replizieren Im Server erfolgt die Datenverteilung. In MySql ist der Master-Server für die Verarbeitung aller Datenaktualisierungsvorgänge verantwortlich, während der Slave-Server den Datenzugriff durch Kopieren der Daten des Master-Servers erreicht.

Im Master-Slave-Replikationsmechanismus von MySql schreibt der Master-Server seine eigenen Datenänderungsdatensätze in seine binäre Protokolldatei (Binärprotokoll), und der Slave-Server erhält die Datenaktualisierungsvorgänge auf dem Master-Server durch Lesen der binären Protokolldatei . Auf diese Weise kann der Slave-Server die Daten auf dem Master-Server in Echtzeit synchronisieren, wodurch es für mehrere Systeme einfacher und effizienter wird, gleichzeitig auf Daten zuzugreifen.

2. Konfigurationsmethode des Master-Slave-Replikationsmechanismus

  1. Voraussetzungen

Bevor Sie den Master-Slave-Replikationsmechanismus konfigurieren, müssen Sie sicherstellen, dass die MySql-Datenbank sowohl auf dem Master-Server als auch auf dem Slave-Server installiert wurde die Versionen sind gleich. Darüber hinaus müssen Sie sicherstellen, dass Master- und Slave-Server aufeinander zugreifen können und der Master-Server die Binärprotokollfunktion aktiviert hat.

  1. Konfigurieren Sie den Master-Server

Schritt 1: Erstellen Sie auf dem Master-Server einen Benutzer für die Replikation vom Server und autorisieren Sie ihn für den Zugriff auf alle Datenbanken des Master-Servers. Beispielsweise können wir einen Benutzer namens „Replikator“ erstellen und ihm Zugriff auf alle Datenbanken gewähren.

CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'replicator'@'%' WITH GRANT OPTION;

Schritt 2: Aktivieren Sie die Binärprotokollfunktion des Hauptservers. Fügen Sie die folgenden Parameter in der my.cnf-Konfigurationsdatei des Master-Servers hinzu:

[mysqld]
log_bin=mysql-bin
server-id=1

Der Server-ID-Parameter stellt die eindeutige Kennung des Master-Servers dar. Jeder Master-Server sollte eine andere Kennung haben. Hier setzen wir es auf 1 und setzen das Präfix der binären Protokolldatei auf mysql-bin.

Schritt 3: Starten Sie den Hauptserver neu, damit die Änderungen in der Konfigurationsdatei wirksam werden.

  1. Konfigurieren Sie den Slave-Server

Schritt 1: Erstellen Sie einen Benutzer für den Master-Server-Zugriff auf dem Slave-Server und autorisieren Sie ihn für den Zugriff auf alle Datenbanken, die repliziert werden müssen. Wir können beispielsweise einen Benutzer namens „backup“ erstellen und ihm Zugriff auf alle Datenbanken gewähren.

CREATE USER 'backup'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'backup'@'%' WITH GRANT OPTION;

Schritt 2: Fügen Sie die folgenden Parameter in der my.cnf-Konfigurationsdatei des Slave-Servers hinzu:

[mysqld]
server-id=2
relay-log=mysql-relay
log_slave_updates=1
read_only=1

Im Gegensatz zum Master-Server muss der Slave-Server die Binärprotokollfunktion nicht aktivieren. Der Wert des Parameters server-id muss sich vom Wert des Hauptservers unterscheiden. Hier setzen wir ihn auf 2. Der Parameter „relay-log“ gibt den Speicherort der vom Server empfangenen Datenänderungsdatensätze an. Hier nennen wir ihn mysql-relay. Der Parameter log_slave_updates gibt an, dass der Slave-Server auch die von ihm generierten Datenänderungsdatensätze in seine eigene binäre Protokolldatei schreiben muss. Der Parameter read_only gibt an, dass der Slave-Server nur für Lesevorgänge und nicht für Schreibvorgänge in die Datenbank verwendet werden kann.

Schritt 3: Starten Sie den Slave-Server neu, damit die Änderungen in der Konfigurationsdatei wirksam werden.

  1. Replikation starten

Schritt 1: Führen Sie den folgenden Befehl auf dem Slave-Server aus, um eine Verbindung mit dem Master-Server herzustellen.

CHANGE MASTER TO MASTER_HOST='主服务器IP地址', MASTER_USER='replicator', 
MASTER_PASSWORD='password', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000001', 
MASTER_LOG_POS=107;

Darunter ist der Parameter MASTER_HOST die IP-Adresse des Master-Servers und die Parameter MASTER_USER und MASTER_PASSWORD sind der Benutzername und das Passwort des Benutzers, der auf dem Master-Server für die Replikation vom Server erstellt wurde. Der Parameter MASTER_PORT gibt die Portnummer des Hauptservers an, hier setzen wir ihn auf 3306. Die Parameter MASTER_LOG_FILE und MASTER_LOG_POS geben an, an welcher Position der Binärprotokolldatei mit dem Kopieren von Daten vom Server begonnen werden soll, und halten die Synchronisierung aufrecht. Hier gehen wir davon aus, dass wir mit dem Kopieren ab dem 107. Byte der Daten der ersten Binärprotokolldatei (mysql-bin.000001) beginnen möchten.

Schritt 2: Starten Sie die Replikationsfunktion vom Slave-Server.

START SLAVE;

Mit diesem Befehl beginnt der Slave-Server, die Daten vom Master-Server zu kopieren. Sie können den Replikationsstatus mit dem Befehl „SHOW SLAVE STATUSG“ überprüfen.

  1. Replikation testen

Um zu testen, ob die Replikation ordnungsgemäß funktioniert, können wir einige Daten auf dem Master-Server einfügen und prüfen, ob die Daten erfolgreich auf dem Slave-Server repliziert wurden.

Führen Sie den folgenden Befehl auf dem Hauptserver aus, um einen Datensatz in die Datentabelle einzufügen.

INSERT INTO test_table (name, age) VALUES ('Tom', 25);

Führen Sie den folgenden Befehl auf dem Slave-Server aus, um zu überprüfen, ob die Daten in der Tabelle test_table synchronisiert wurden.

SELECT * FROM test_table;

Wenn die eingefügten Daten auf dem Slave-Server sichtbar sind, bedeutet dies, dass der Master-Slave-Replikationsmechanismus erfolgreich konfiguriert und gestartet wurde.

3. Zusammenfassung

Der Master-Slave-Replikationsmechanismus von MySql ist ein wichtiges Mittel zur Datenverteilung und -synchronisierung und wird häufig in tatsächlichen Projekten verwendet. In diesem Artikel wird erläutert, wie Sie den Master-Slave-Replikationsmechanismus in MySql konfigurieren, einschließlich der Konfiguration des Master-Servers und der Slave-Server sowie der Einrichtung eines Replikationskanals zwischen Master- und Slave-Servern. Mit den oben genannten Schritten können Sie die Master-Slave-Replikationsfunktion problemlos in MySql implementieren.

Das obige ist der detaillierte Inhalt vonMySQL-Datenverteilung: So implementieren Sie den Master-Slave-Replikationsmechanismus. 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