Heim > Datenbank > MySQL-Tutorial > Hauptteil

So richten Sie die MySQL-Master-Master-Replikation ein

不言
Freigeben: 2019-03-05 11:12:25
Original
3078 Leute haben es durchsucht

Bei der So richten Sie die MySQL-Master-Master-Replikation ein-Master-Slave-Replikation wird der Slave-Server so eingerichtet, dass er sofort aktualisiert, nachdem der Master-Server die Änderungen abgeschlossen hat. Wenn jedoch Änderungen am Slave-Server vorgenommen werden, wird der Master nicht aktualisiert. In diesem Artikel wird die Einrichtung der Master-Master-Replikation zwischen So richten Sie die MySQL-Master-Master-Replikation ein-Servern vorgestellt.

So richten Sie die MySQL-Master-Master-Replikation ein

In diesem Setup werden alle auf einem der Server vorgenommenen Änderungen auf dem anderen Server aktualisiert.

Einrichtungsdetails:

Master-1: 192.168.1.15
Master-2: 192.168.1.16
Database: mydb
Nach dem Login kopieren

Schritt 1: So richten Sie die MySQL-Master-Master-Replikation ein Master-1-Server einrichten

Bearbeiten Sie die So richten Sie die MySQL-Master-Master-Replikation ein-Konfigurationsdatei und Fügen Sie im Abschnitt [mysqld] den folgenden Code hinzu.

# vim /etc/my.cnf
Nach dem Login kopieren
rrree

Starten Sie den So richten Sie die MySQL-Master-Master-Replikation ein-Server neu, damit die Änderungen wirksam werden.

[mysqld]
log-bin=mysql-bin
binlog-do-db=mydb
server-id=1
Nach dem Login kopieren

Erstellen Sie ein So richten Sie die MySQL-Master-Master-Replikation ein-Konto mit REPLICATION SLAVE-Berechtigungen auf dem Master-1-Server, und der Replikationsclient stellt eine Verbindung zum Master her.

# service mysqld restart
Nach dem Login kopieren

Es gibt Blockschreibanweisungen für alle Tabellen, sodass nach der Sicherung keine Änderungen vorgenommen werden können.

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'secretpassword';
mysql> FLUSH PRIVILEGES;
Nach dem Login kopieren

Verwenden Sie die folgenden Befehle, um den aktuellen Binärprotokolldateinamen (Datei) und den aktuellen Offset-Wert (Position) zu überprüfen.

mysql> use mydb;
mysql> FLUSH TABLES WITH READ LOCK;
Nach dem Login kopieren

Die obige Ausgabe zeigt, dass die aktuelle Binärdatei mysql-bin.000003 mit einem Offset von 332 verwendet. Notieren Sie sich diese Werte für die Verwendung auf dem Master-2-Server im nächsten Schritt.

Sichern Sie die Datenbank und kopieren Sie sie auf einen anderen So richten Sie die MySQL-Master-Master-Replikation ein-Server.

mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |      332 | mydb         |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
Nach dem Login kopieren

Sobald die Sicherung abgeschlossen ist, entfernen Sie die Lesesperre aus der Tabelle, damit Änderungen vorgenommen werden können.

# mysqldump -u root -p mydb > mydb.sql
# scp mydb.sql 192.168.1.16:/opt/
Nach dem Login kopieren

Schritt 2: So richten Sie die MySQL-Master-Master-Replikation ein Master-2 Server einrichten

Bearbeiten Sie die So richten Sie die MySQL-Master-Master-Replikation ein Master-2-Konfigurationsdatei und fügen Sie die folgenden Werte im Abschnitt [mysqld] hinzu .

mysql> UNLOCK TABLES;
Nach dem Login kopieren

server-id ist immer ein Wert ungleich Null. Diese Werte werden niemals denen anderer Master oder Slaves ähneln.

Starten Sie den So richten Sie die MySQL-Master-Master-Replikation ein-Server neu. Wenn die Replikation konfiguriert ist, verwenden Sie beim Start -skip-slave-start und stellen Sie nicht sofort eine Verbindung zum Master-Server her.

#vim /etc/my.cnf
[mysqld] 
log-bin = mysql-bin 
binlog-do-db = mydb 
server-id = 1
Nach dem Login kopieren

Stellen Sie die vom Master-Server erstellte Datenbanksicherung wieder her.

#service mysqld restart
Nach dem Login kopieren

Erstellen Sie ein So richten Sie die MySQL-Master-Master-Replikation ein-Konto mit REPLICATION SLAVE-Berechtigungen auf dem Master-1-Server, und der Replikationsclient stellt eine Verbindung zum Master her.

#mysql -u root -p mydb </opt/mydb.sql
Nach dem Login kopieren

Verwenden Sie die folgenden Befehle, um den aktuellen Binärprotokolldateinamen (Datei) und den aktuellen Offset-Wert (Position) zu überprüfen.

mysql> GRANT REPLICATION SLAVE ON *.*&#39;&#39;repl_user&#39;@&#39;%&#39;IDENTIFIED BY&#39;secretpassword&#39;; 
mysql> FLUSH PRIVILEGES;
Nach dem Login kopieren

Die obige Ausgabe zeigt, dass die aktuelle Binärdatei mysql-bin.000001 mit einem Offset von 847 verwendet. Notieren Sie sich diese Werte für die Verwendung in Schritt 3.

Verwenden Sie den folgenden Befehl, um den Optionswert auf dem Slave-Server festzulegen.

mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      847 | mydb         |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
Nach dem Login kopieren

Schritt 3: Schließen Sie die Installation von So richten Sie die MySQL-Master-Master-Replikation ein Master-1 ab

Melden Sie sich beim So richten Sie die MySQL-Master-Master-Replikation ein Master-1-Server an und führen Sie den folgenden Befehl aus.

mysql> CHANGE MASTER TO MASTER_HOST =&#39;192.168.1.15&#39;,
    - > MASTER_USER =&#39;repl_user&#39;,
    - > MASTER_PASSWORD =&#39;secretpassword&#39;,
    - > MASTER_LOG_FILE =&#39;mysql-bin.000003&#39;,
    - > MASTER_LOG_POS = 332;
Nach dem Login kopieren


Schritt 4: SLAVE auf beiden Servern starten

Führen Sie die folgenden Befehle auf beiden Servern aus, um den Replikations-Slave-Prozess zu starten.

mysql> CHANGE MASTER TO MASTER_HOST =&#39;192.168.1.16&#39;,
     MASTER_USER =&#39;repl_user&#39;,
     MASTER_PASSWORD =&#39;secretpassword&#39;,
     MASTER_LOG_FILE =&#39;mysql-bin.000001&#39;,
     MASTER_LOG_POS = 847;
Nach dem Login kopieren

So richten Sie die MySQL-Master-Master-Replikation ein Master-Master-Replikation wurde erfolgreich auf Ihrem System und Arbeitsmodus konfiguriert. Um zu testen, ob die Replikation ordnungsgemäß funktioniert, nehmen Sie Änderungen auf einem der Server vor und prüfen Sie, ob sich die Änderungen auf den anderen Servern widerspiegeln.

Das obige ist der detaillierte Inhalt vonSo richten Sie die MySQL-Master-Master-Replikation ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage