Heim >Datenbank >MySQL-Tutorial >So verwenden Sie die Master-Slave-Replikation von MySQL, um eine Architektur mit Lese-/Schreibtrennung zu implementieren

So verwenden Sie die Master-Slave-Replikation von MySQL, um eine Architektur mit Lese-/Schreibtrennung zu implementieren

WBOY
WBOYOriginal
2023-08-02 09:21:29943Durchsuche

So verwenden Sie die Master-Slave-Replikation von MySQL, um eine Lese-/Schreib-Trennarchitektur zu implementieren

In herkömmlichen Webanwendungen sind Lese- und Schreibvorgänge normalerweise mit demselben Datenbankserver verbunden. Wenn sich Anwendungen entwickeln und das Zugriffsvolumen zunimmt, kann diese Architektur leicht zu Engpässen bei der Datenbankleistung führen. Um dieses Problem zu lösen, kann die Master-Slave-Replikation von MySQL verwendet werden, um eine Lese-/Schreib-Trennarchitektur zu implementieren. In diesem Artikel wird erläutert, wie Sie mithilfe der Master-Slave-Replikation von MySQL eine Lese-/Schreibtrennung erreichen, und entsprechende Codebeispiele bereitstellen.

  1. Umgebungsvorbereitung
    Stellen Sie zunächst sicher, dass Sie MySQL auf dem Server installiert haben und dass die Master- und Slave-Datenbanken normal kommunizieren können. Wenn MySQL noch nicht installiert ist, folgen Sie bitte der offiziellen Dokumentation, um es zu installieren und einzurichten.
  2. Konfigurieren Sie die Hauptdatenbank
    Konfigurieren Sie Folgendes in der Hauptdatenbank:

(1) Öffnen Sie die Konfigurationsdatei my.cnf der Hauptdatenbank und fügen Sie am Ende die folgende Konfiguration hinzu:

# 设置为主数据库
server-id=1
log-bin=mysql-bin

(2) Starten Sie die Hauptdatenbank neu Datenbank:

$ sudo service mysql restart
  1. Konfigurieren Sie die Slave-Datenbank
    Konfigurieren Sie Folgendes in der Slave-Datenbank:

(1) Öffnen Sie die Konfigurationsdatei my.cnf der Slave-Datenbank und fügen Sie am Ende die folgende Konfiguration hinzu:

# 设置为从数据库
server-id=2
relay-log=mysql-relay-bin

(2 ) Starten Sie die Slave-Datenbank neu:

$ sudo service mysql restart
  1. Replikationsbenutzer erstellen
    Erstellen Sie einen Benutzer für die Replikation in der Hauptdatenbank und erteilen Sie entsprechende Berechtigungen. Führen Sie den folgenden Befehl aus:

    mysql> CREATE USER 'replication'@'%' IDENTIFIED BY 'password';
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
    mysql> FLUSH PRIVILEGES;
  2. Master-Slave-Replikation starten
    Führen Sie den folgenden Befehl auf der Slave-Datenbank aus, um die Master-Slave-Replikation zu starten:

    mysql> CHANGE MASTER TO MASTER_HOST='主数据库IP', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=0;
    mysql> START SLAVE;
  3. Master-Slave-Replikation überprüfen
    Führen Sie den folgenden Befehl auf der Slave-Datenbank aus um den Status der Master-Slave-Replikation anzuzeigen:

    mysql> SHOW SLAVE STATUS G

    Stellen Sie sicher, dass die folgenden beiden Parameter den Wert „JA“ haben:

    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

    Wenn ein Fehler auftritt, müssen Sie überprüfen, ob die Replikationskonfiguration und die Datenbankverbindung korrekt eingerichtet sind.

  4. Lese-Schreib-Trennung erreichen
    Sobald die Master-Slave-Replikation erfolgreich konfiguriert ist, kann eine Lese-Schreib-Trennung erreicht werden. In der Anwendung ist die Slave-Datenbank für Lesevorgänge und die Master-Datenbank für Schreibvorgänge verbunden. Dadurch können Datenbankressourcen effektiv genutzt und die Systemleistung und -stabilität verbessert werden. 🔜 Implementieren Sie die Lese-Schreib-Trennarchitektur. Durch diese Architektur können Lesevorgänge der Slave-Datenbank zugewiesen werden, wodurch die Leistung und Stabilität des Systems effektiv verbessert wird. Hoffe das hilft!

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Master-Slave-Replikation von MySQL, um eine Architektur mit Lese-/Schreibtrennung zu implementieren. 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