Heim  >  Artikel  >  Datenbank  >  So richten Sie die MySQL-Master-Master-Replikation ein

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

不言
不言Original
2019-03-05 11:12:253076Durchsuche

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

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
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

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

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;

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;

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)

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/

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;

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

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

#service mysqld restart

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

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;

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)

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;


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;

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!

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