Master-Slave-Synchronisationskonfiguration und Lese-/Schreibtrennung der MySQL-Datenbank

Master-Slave-Synchronisationskonfiguration und Lese-/Schreibtrennung der MySQL-Datenbank

Die Verwendung der MySQL Master-Slave-Replikation bietet folgende Vorteile:

1. Zur Verbesserung der Stabilität wird die Master-Slave-Serverarchitektur übernommen. Wenn der primäre Server ausfällt, können wir den Slave-Server zum Bereitstellen von Diensten verwenden.

2. Die separate Verarbeitung von Benutzeranforderungen auf dem Master- und Slave-Server kann die Effizienz der Datenverarbeitung verbessern.

3. Kopieren Sie die Daten auf dem Master-Server auf den Slave-Server, um die Daten vor versehentlichem Verlust zu schützen.

Umgebungsbeschreibung:

Neue Unternehmen müssen eine MySQL-Datenbank mit einer Master-Slave-Replikationsarchitektur erstellen.

Masterserver (mysql-Master): IP-Adresse: 192.168.48.128, mysql installiert, keine Benutzerdaten.

Slave-Server (mysql-slave): IP-Adresse: 192.168.48.130, mysql installiert, keine Benutzerdaten.

Sowohl der Master- als auch der Slave-Server können normal Dienste bereitstellen.

Konfigurieren des Masterservers

1. Bearbeiten Sie die Datenbankkonfigurationsdatei my.cnf oder my.ini (Windows), normalerweise im Verzeichnis /etc/.

Fügen Sie unten [mysqld] den folgenden Code ein:

log-bin=mysql-bin
Server-ID = 1
innodb_flush_log_at_trx_commit = 1
sync_binlog=1
binlog-do-db=WordPress
binlog_ignore_db=mysql

veranschaulichen:

server-id=1 //Die 1 in server-id=1 kann beliebig definiert werden, solange sie eindeutig ist.

binlog-do-db=wordpress // bedeutet, nur WordPress zu sichern.

binlog_ignore_db=mysql //Gibt an, dass das MySQL-Backup ignoriert wird.

Ohne binlog-do-db und binlog_ignore_db werden alle Datenbanken gesichert.

2. Starten Sie dann MySQL neu:# service mysqld restart restart

3. Melden Sie sich bei MySQL an, fügen Sie in MySQL ein Sicherungskonto hinzu und autorisieren Sie es für den Slave-Server.

[root@localhost~]#mysql -u root –p 123456 Melden Sie sich bei mysql an
mysql>gewähre Replikations-Slave auf*.* an 'backup'@'192.168.48.130', identifiziert durch 'backup';

Erstellen Sie einen Backup-Benutzer und autorisieren Sie 192.168.48.130 zur Verwendung des Kontos.

4. Fragen Sie den Status der Masterdatenbank ab und notieren Sie die Werte von FILE und Position, die später bei der Konfiguration des Slave-Servers verwendet werden.

mysql>show masterstatus; Bitte notieren Sie sich die angezeigten Informationen. Diese werden bei der Konfiguration des Slave-Servers verwendet.

+——————+———-+————–+——————

+|Datei|Position|Binlog_Do_DB|Binlog_Ignore_DB|

+——————+———-+————–+——————

+|mysql-bin.000001|253|dbispconfig|mysql|

+——————+———-+————–+——————+

1 Zeile im Satz (0,00 Sek.)

Auf dem Slave-Server:

1) Stellen Sie sicher, dass /etc/my.cnf die Parameter log-bin=mysql-bin und server-id=1 enthält, und ändern Sie server-id=1 in server-id=10. Nach der Modifikation sieht es so aus:

[mysqld]

log-bin=mysql-bin //Binärdatei starten server-id=10 //Server-ID

2) Starten Sie den MySQL-Dienst neu.

[root@localhost~]#mysqladmin-p123456shutdown

[root@localhost~]#mysqld_safe--Benutzer=mysql&

3) Melden Sie sich bei MySQL an und führen Sie die folgende Anweisung aus

[root@localhost~]#mysql-uroot–p123456

mysql>changemastertomaster_host='192.168.48.128',master_user='Sicherung',master_password='Sicherung',master_log_file='mysql-bin.000003',master_log_pos=401;

4) Starten Sie die Slave-Synchronisierung.

mysql>Slave starten;

5) Überprüfen Sie die Master-Slave-Synchronisierung. Wenn Sie sehen, dass sowohl Slave_IO_Running als auch Slave_SQL_Running „Ja“ lauten, ist die Master-Slave-Replikationsverbindung normal.
mysql> show slave status\G

Überprüfen Sie, ob die Konfiguration normal ist und ob der MySQL-Master-Slave normal repliziert werden kann.

Erstellen Sie eine neue Datenbank auf der Hauptdatenbank und schreiben Sie eine Tabelle und einige Daten in die Datenbank.

[root@localhost~]#mysql -u root –p 123456

mysql>Datenbank mysqltest erstellen;

mysql>mysqltest verwenden;

mysql>Tabelle erstellen Benutzer(idint(5),namechar(10));

mysql>in Benutzerwerte einfügen (00001,'zhangsan');

Überprüfen Sie anhand der Datenbank, ob die Daten normal kopiert werden.

[root@localhost~]#mysql -u root –p 123456

mysql>Datenbanken anzeigen;

mysql>wählen Sie * aus mysqltest.user aus;

Das könnte Sie auch interessieren:
  • Konfigurationsschritte für die MySQL-Master-Slave-Synchronisierung und die Trennung von Lesen und Schreiben
  • Ein Artikel zum Verständnis der MySQL Master-Slave-Replikation und der Lese-/Schreibtrennung
  • Detaillierte Erläuterung der Konfigurationsmethode der Lese-/Schreibtrennung bei der MySQL-Master-Slave-Replikation
  • Detaillierte Erläuterung der Konstruktion der Lese-/Schreibtrennung bei der MySQL-Master-Slave-Replikation
  • Detaillierte Erläuterung der Prinzipien und der Verwendung der MySQL-Master-Slave-Replikation und der Lese-/Schreibtrennung
  • Ein ausführliches Tutorial zur Master-Slave-Replikation und Lese-/Schreibtrennung der MySQL-Datenbank

<<:  JavaScript implementiert Klicken zum Ändern der Bildform (Transformationsanwendung)

>>:  Bedeutung und Verwendung einer Linux-CD

Artikel empfehlen

Bild-Tag für HTML-Webseite

Bild-Tag <IMG> einfügen Die farbenfrohen Web...

Beispiel zur Erhöhung des Swap-Speichers im CentOS7-System

Vorwort Swap ist eine spezielle Datei (oder Parti...

MySQL-String-Splitting-Beispiel (String-Extraktion ohne Trennzeichen)

String-Extraktion ohne Trennzeichen Fragenanforde...

So verwenden Sie SVG-Symbole in WeChat-Applets

SVG wurde in den letzten Jahren aufgrund seiner v...

Dieser Artikel zeigt Ihnen, wie Sie mit CSS-Kombinationsselektoren spielen

CSS-Kombinationsselektoren umfassen verschiedene ...

Ungültige Lösung beim Definieren mehrerer Klassenattribute in HTML

Beim Schreiben von HTML definieren wir häufig mehr...

js implementiert Axios Limit-Anforderungswarteschlange

Inhaltsverzeichnis Der Hintergrund ist: Was wird ...

Ubuntu 20.04 stellt eine Verbindung zu WLAN her (2 Methoden)

Ich habe vor Kurzem Ubuntu 20.04 installiert und ...

6 praktische Tipps für die TypeScript-Entwicklung

Inhaltsverzeichnis 1. Bestimmen Sie den Entitätst...

CSS, um den kleinen scharfen Eckeneffekt von Blasen zu erzielen

Effektbild (die Rahmenfarbe ist zu hell, setzen S...

Eine "klassische" Falle der MySQL UPDATE-Anweisung

Inhaltsverzeichnis 1. Problematische SQL-Anweisun...