MySQL-Konfiguration Master-Slave-Server (ein Master und mehrere Slaves)

MySQL-Konfiguration Master-Slave-Server (ein Master und mehrere Slaves)

In diesem Artikel wird hauptsächlich die Konfiguration eines MySQL-Master-Slave-Servers (ein Master und mehrere Slaves) vorgestellt. Wenn Sie interessiert sind, können Sie mehr darüber erfahren.

Aktuelles Umfeld
Centos 7.6
MySQL 5.7

Informationen zur Installation von MySQL 5.7 auf Centos 7.6 finden Sie unter: https://www.jb51.net/article/99965.htm

Ideen

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Hostkonfiguration

Konfiguration ändern

vim /etc/meine.cnf

Fügen Sie die Konfiguration nach [mysqld] hinzu, speichern Sie und beenden Sie

Server-ID = 1
log-bin=master-bin
log-bin-index=master-bin.index

Neustart

systemctl startet mysqld.service neu

# Überprüfen Sie den Status systemctl status mysqld.service

prüfen

mysql -u root -p
MASTER-STATUS ANZEIGEN; 

Bildbeschreibung hier einfügen

Slave 1 Konfiguration

Konfiguration ändern

vim /etc/meine.cnf

Fügen Sie die Konfiguration nach [mysqld] hinzu, speichern Sie und beenden Sie

Server-ID = 2
Relay-Log = Slave-01-Relay-Bin
relay-log-index=slave-01-relay-bin.index

Neustart

systemctl startet mysqld.service neu
# Überprüfen Sie den Status systemctl status mysqld.service

Slave 2 Konfiguration

Konfiguration ändern

vim /etc/meine.cnf

Fügen Sie die Konfiguration nach [mysqld] hinzu, speichern Sie und beenden Sie

Server-ID = 3
Relay-Log = Slave-02-Relay-Bin
relay-log-index=slave-02-relay-bin.index

Neustart

systemctl startet mysqld.service neu
# Überprüfen Sie den Status systemctl status mysqld.service

Konfigurieren von Master-Slave-Beziehungen

Hostkonfiguration

Melden Sie sich bei der MySQL-Konsole des Hosts an, erstellen Sie einen Benutzer, autorisieren Sie ihn und aktualisieren Sie.

mysql -u root -p

ERSTELLEN SIE BENUTZER 'repl'@'%' IDENTIFIZIERT DURCH 'Mysql57*';
GRANT REPLICATION SLAVE ON *.* AN 'repl'@'%' IDENTIFIZIERT DURCH 'Mysql57*';
Berechtigungen leeren;

Bildbeschreibung hier einfügen

Slave-Konfiguration

mysql -u root -p

# Meine Host-IP hier ist 192.168.1.8
ändere Master in master_host='192.168.1.8',master_port=3306,master_user='repl',master_password='Mysql57*',master_log_file='master-bin.000001',master_log_pos=0;

Slave starten;
#Master-Slave-Synchronisierung stoppen#stop slave;
# \G bedeutet Zeilenumbruch, um den Slave-Status anzuzeigen \G; 

Wenn Sie den Master-Slave-Status überprüfen, wird die Meldung „Der Slave-E/A-Thread wird angehalten, da Master und Slave die gleichen MySQL-Server-UUIDs haben. Diese UUIDs müssen unterschiedlich sein, damit die Replikation funktioniert.“ Weitere Informationen finden Sie in den FAQ.

Bildbeschreibung hier einfügen

Testdatensynchronisation

Hier verwendet der Autor das Visualisierungstool Navicat. Leser können auch andere Tools verwenden, nur ein einfacher Test.

Fügen Sie in der Master-Bibliothek eine neue Bibliothek test-for-repl hinzu und prüfen Sie, ob in den Slave-Bibliotheken 01 und 02 eine neue Bibliothek vorhanden ist

Fügen Sie in der Masterbibliothek Test-for-Repl eine neue Tabelle Test-Create-Table hinzu, um zu prüfen, ob in der Slavebibliothek 01 und 02 eine Tabelle vorhanden ist. Fügen Sie in der Masterbibliothek Test-for-Repl eine neue Tabelle Test-Create-Table hinzu, um zu prüfen, ob in der Slavebibliothek 01 und 02 Daten vorhanden sind.

Bildbeschreibung hier einfügen

Häufig gestellte Fragen

Der Slave-Rechner prüft den Master-Slave-Synchronisationsstatus show slave status \G; und meldet einen Fehler

Der Slave-E/A-Thread wird angehalten, da Master und Slave über die gleichen MySQL-Server-UUIDs verfügen. Damit die Replikation funktioniert, müssen diese UUIDs unterschiedlich sein.

Bildbeschreibung hier einfügen

Grund

Hier verwendete der Autor VMware-Software, um eine virtuelle Maschine zu erstellen, auf der Centos7.6 + MySQL5.7 installiert wurde, und verwendete die virtuelle Maschine dann, um zwei weitere virtuelle Maschinen als Slave-Maschinen zu klonen, was dazu führte, dass nach dem Start von MySQL auf den drei virtuellen Maschinen dieselbe UUID generiert wurde.

Lösung

Suchen Sie die UUID von MySQL, ändern Sie ein Zeichen, starten Sie den Dienst neu, melden Sie sich dann bei der MySQL-Konsole an und aktivieren Sie den Master-Slave

finden / -name 'auto.cnf'
vim /var/lib/mysql/auto.cnf
systemctl startet mysqld.service neu
mysql -u root -p
Slave starten;
# \G bedeutet Zeilenumbruch, um den Slave-Status anzuzeigen \G; 

Dies ist das Ende dieses Artikels über die Konfiguration eines MySQL-Master-Slave-Servers (ein Master und mehrere Slaves). Weitere relevante Inhalte zum MySQL-Master-Slave-Server finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung des MySQL-Clusters: Implementierung einer Master- und einer Slave-Architektur
  • Implementierungsschritte für die Bereitstellung von MySQL mit einem Master und mehreren Slaves

<<:  So implementieren Sie Leerzeichen in Taobao mit CSS3

>>:  html Option deaktivieren auswählen auswählen deaktivieren Option Beispiel

Artikel empfehlen

Diagramm des Prozesses zur Implementierung eines Richtungsproxys durch Nginx

Dieser Artikel stellt hauptsächlich den Prozess d...

Docker-Verbindung – MongoDB-Implementierungsprozess und Codebeispiele

Nachdem der Container gestartet wurde Melden Sie ...

HTML+jQuery zur Implementierung einer einfachen Anmeldeseite

Inhaltsverzeichnis Einführung Öffentlicher Code (...

js-Speicherleckszenarien, wie man sie im Detail überwacht und analysiert

Inhaltsverzeichnis Vorwort Welche Situationen kön...

Verschiedene Möglichkeiten zum Ändern der Hintergrundbildfarbe mit CSS3

CSS3 kann die Farbe von Bildern ändern. Ab sofort...

JavaScript-Canvas zum Erzielen eines farbenfrohen Uhreffekts

Verwenden Sie Leinwand, um eine bunte Uhr zu schr...

Vue implementiert das Senden von Emoticons im Chatfenster

Der spezifische Code zum Senden von Emoticons im ...

React tsx generiert einen zufälligen Bestätigungscode

React tsx generiert einen zufälligen Bestätigungs...

Verwenden von js, um einen Wasserfalleffekt zu erzielen

In diesem Artikelbeispiel wird der spezifische Co...