Mysql Master-Slave-Synchronisierungskonfiguration Konfigurationsvorbereitung:
1. Installieren Sie zwei MySQL
[root@localhost /]# mkdir -p /opt/docker/mysql1/conf/ [root@localhost /]# mkdir -p /opt/docker/mysql1/logs/ [root@localhost /]# mkdir -p /opt/docker/mysql1/data/
[root@localhost /]# docker run -d -p 6894:3306 --name mysql1 \ -v /opt/docker/mysql1/conf:/etc/mysql/ \ -v /opt/docker/mysql1/logs:/logs \ -v /opt/docker/mysql1/data:/var/lib/mysql \ --privilegiert=true \ -e MYSQL_ROOT_PASSWORD=qtykGhC29eP4Smpmysql:5.7
[root@localhost Docker]# cp -r /opt/docker/mysql1/ /opt/docker/mysql2/
[root@localhost Docker]# rm -f /opt/docker/mysql2/data/auto.cnf
[root@localhost docker]# docker run -d -p 6895:3306 --name mysql2 \ -v /opt/docker/mysql2/conf:/etc/mysql/ \ -v /opt/docker/mysql2/logs:/logs \ -v /opt/docker/mysql2/data:/var/lib/mysql \ --privilegiert=true \ -e MYSQL_ROOT_PASSWORD=qtykGhC29eP4Smpmysql:5.7 2. Schreiben Sie die MySQL-Konfigurationsdatei
[root@localhost Docker]# vim /opt/docker/mysql1/conf/my.cnf
[mysqld] # Konfiguration der Masterdatenbank server-id=1 # Eindeutigkeit der Service-ID log-bin=mysql1-log # Binärlog aktivieren binlog-format=ROW # Logging-Modus replicate-do-db=db_docker # Name der zu replizierenden Daten # replicate-ignore-db=db_docker # Name der Daten, die nicht repliziert werden müssen
[root@localhost Docker]# vim /opt/docker/mysql2/conf/my.cnf
[mysqld] # Aus der Bibliothek konfigurieren server-id=2 # Eindeutigkeit der Service-ID log-bin=mysql2-log # Binärprotokoll aktivieren binlog-format=ROW # Protokollierungsmodus binlog-do-db=db_docker # Name der zu kopierenden Daten # binlog-ignore-db=db_docker # Name der Daten, die nicht kopiert werden müssen
[root@localhost docker]# docker restart mysql1 [root@localhost docker]# docker restart mysql2 3. Daten initialisieren
- Erstellen Sie eine Datenbank CREATE DATABASE `db_docker`; VERWENDEN Sie db_docker; -- Tabelle erstellen CREATE TABLE `t_docker` ( `id` INT ( 11 ) NICHT NULL AUTO_INCREMENT, `name` VARCHAR(255) DEFAULT NULL, PRIMÄRSCHLÜSSEL ( `id` ) ) ENGINE = INNODB AUTO_INCREMENT = 0 DEFAULT CHARSET = utf8; Sehen Sie sich das Binärprotokoll der Hauptbibliothek an:
mysql> MASTER-STATUS ANZEIGEN; +------------------+----------+--------------+------------------+-------------------+ | Datei | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000001 | 2223 | | | | +------------------+----------+--------------+------------------+-------------------+ Konfigurieren des Slave-Binärprotokolls
ÄNDERN SIE MASTER IN MASTER_HOST="192.168.101.59", # Hostadresse Ihre Hauptserver-IP Master_Port=6894, # Port MASTER_USER="root", # Konto MASTER_PASSWORD="qtykGhC29eP4Smp", # Passwort MASTER_LOG_FILE="mysql-bin.000001", # Der Name der Binärdatei der Hauptbibliothek wird entsprechend der tatsächlichen Situation ausgefüllt MASTER_LOG_POS=377; # Die Position der Binärdatei der Hauptbibliothek wird entsprechend der tatsächlichen Situation ausgefüllt
mysql> START SLAVE; Statusinformationen zu den grundlegenden Parametern der Slave-Bibliotheks-Threads. Verwenden Sie ab MySQL 8.0.22 SHOW REPLICA STATUS anstelle des veralteten SHOW SLAVE STATUS. Verwenden Sie in Versionen vor MySQL 8.0.22 SHOW SLAVE STATUS . Diese Anweisung erfordert das Privileg REPLICATION CLIENT (oder das veraltete Privileg SUPER).
mysql> SLAVE-STATUS ANZEIGEN \G; *************************** 1. Reihe *************************** Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet Master_Host: 192.168.101.59 Master_Benutzer: root Master_Port: 6894 Verbindungswiederholung: 60 Master_Log_File:mysql-bin.000001 Read_Master_Log_Pos: 2223 Relay_Log_File: 98394ee2fb48-relay-bin.000004 Relay_Log_Pos: 320 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Ja Slave_SQL_Running: Ja Replicate_Do_DB: Replikat_Ignorieren_DB: Tabelle_replizieren: Tabelle_Ignorieren_replizieren: Wild_Do_Tabelle replizieren: Tabelle_Wild_Ignore_replizieren: Last_Errno: 0 Letzter_Fehler: Skip_Counter: 0 Exec_Master_Log_Pos: 2223 Relay_Log_Space: 534 Until_Condition: Keine Bis_Log_Datei: Bis_Log_Pos: 0 Master_SSL_Allowed: Nein Master_SSL_CA_Datei: Master_SSL_CA_Pfad: Master_SSL_Zertifikat: Master_SSL_Chiffre: Master_SSL_Schlüssel: Sekunden_Hinter_Master: 0 Master_SSL_Verify_Server_Cert: Nein Last_IO_Errno: 0 Letzter_E/A-Fehler: Last_SQL_Errno: 0 Letzter_SQL_Fehler: Server-IDs replizieren_ignorieren: Master_Server_Id: 1 Master_UUID: aa58ab20-f500-11eb-aa65-0242ac110002 Master_Info_Datei: /var/lib/mysql/master.info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave hat alle Relay-Logs gelesen; wartet auf weitere Updates Master_Retry_Count: 86400 Master_Bind: Zeitstempel des letzten IO-Fehlers: Letzter_SQL_Fehler_Zeitstempel: Master_SSL_Crl: Master_SSL_Crlpfad: Abgerufenes_Gtid_Set: Ausgeführtes_Gtid_Set: Auto_Position: 0 DB replizieren_neu schreiben: Kanalname: Master_TLS_Version: 4. Andere MySQL-bezogene Befehle
mysql>Tabellen mit Lesesperre leeren;
mysql>Tabellen entsperren;
mysql> SLAVE STOPPEN;
mysql> SLAVE ZURÜCKSETZEN; MySQL-Notizen
MySQL-Container: Betreten des Containers docker exec -it mysql2 /bin/sh #mysql2 Containername kann auch Container-ID sein Melden Sie sich bei MySQL an mysql -u root -pqtykGhC29eP4Smp mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein. Willkommen beim MySQL-Monitor. Befehle enden mit ; oder \g. Ihre MySQL-Verbindungs-ID ist 9 Serverversion: 5.7.35-log MySQL Community Server (GPL) Copyright (c) 2000, 2021, Oracle und/oder seine Tochtergesellschaften. Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen Eigentümer. Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen. MySQL> Erläuterung der my.cnf-Konfiguration [mysqld] # Konfiguration der Hauptdatenbank # Geben Sie eine eindeutige Server-ID an. Sie kann 0 sein, wird vom Server jedoch abgelehnt, der gültige Wert liegt also zwischen 1 und 4294967295. Standardwert 1 # Offizielle Website https://dev.mysql.com/doc/refman/5.7/en/replication-options.html Server-ID = 1 # Binäres Logging aktivieren. Der Name der Binärdatei kann ein Pfad sein, zum Beispiel: /logs/mysql/log. Sie müssen dem Verzeichnis jedoch Dateiberechtigungen erteilen, da MySQL sonst keine Schreibberechtigung hat, was zu einem Fehler führt. log-bin=mysql1-log # Es gibt drei Protokollierungsmodi. # STATEMENT bewirkt, dass die Protokollierung anweisungsbasiert erfolgt. # ROW bewirkt, dass die Protokollierung zeilenbasiert erfolgt. Dies ist die Standardeinstellung. # MIXED bewirkt, dass die Protokollierung das gemischte Format verwendet. Zwischen den ersten beiden Modi# Offizielle Website https://dev.mysql.com/doc/refman/5.7/en/binary-log-setting.html binlog-format=ROW # Der Name der zu kopierenden Datenbank. Um mehrere Datenbanken anzugeben, müssen Sie diese Option mehrfach verwenden. # Da Datenbanknamen Kommas enthalten können, wird die Liste als Name einer einzelnen Datenbank behandelt, wenn Sie eine durch Kommas getrennte Liste angeben. # Mehrere Instanzen: # replizieren-do-db=db_docker1 # replizieren-do-db=db_docker2 replizieren-do-db=db_docker #Datenname, der nicht repliziert werden muss. Gleiche Konfiguration wie oben # replicate-ignore-db=db_docker #Datenname, der nicht repliziert werden muss [mysqld] # Die Konfiguration der Slave-Datenbank ist die gleiche wie oben. server-id=2 # Eindeutigkeit der Service-ID log-bin=mysql2-log # Binärprotokoll öffnen binlog-format=ROW # Protokollierungsmodus binlog-do-db=db_docker # Name der zu kopierenden Daten # binlog-ignore-db=db_docker # Name der Daten, die nicht kopiert werden müssen auth.cnf-Datei Dateiinhalt Server-UUID
[Auto] server-uuid=aa58ab20-f500-11eb-aa65-0242ac110002
Schwerwiegender Fehler: Der Slave-E/A-Thread wird angehalten, da Master und Slave über dieselben MySQL-Server-UUIDs verfügen. Damit die Replikation funktioniert, müssen diese UUIDs unterschiedlich sein. Offizielle Website zur Binärprotokollkonfiguration: https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html Dies ist das Ende dieses Artikels über die Details der MySQL-Master-Slave-Synchronisierungskonfiguration. Weitere relevante Inhalte zur MySQL-Master-Slave-Synchronisierungskonfiguration 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:
|
<<: Details zum JavaScript-Prototyp
>>: Detaillierter Prozess für den Einstieg mit Docker Compose HelloWorld
Originaldaten und Zieldaten SQL-Anweisungen imple...
Elementform und Codeanzeige Weitere Einzelheiten ...
Inhaltsverzeichnis Überblick 1. Entwickeln Sie di...
Die Lösung lautet wie folgt: 1. Container löschen...
Die verschiedenen HTML-Dokumente der Website sind...
1. Legen Sie den CORS-Antwortheader fest, um domä...
XHTML-Überschriftenübersicht Wenn wir Word-Dokume...
Kommentare und Nachrichten waren ursprünglich ein...
Es ist sehr üblich, webpack zum Erstellen einseit...
Versionskette In den Tabellen der InnoDB-Engine g...
Netzfilter Netfilter ist ein Paketverarbeitungsmo...
Ich habe so lange mit PHP zu tun gehabt, aber die...
Inhaltsverzeichnis 1. Offline-Installation 2. Onl...
[LeetCode] 177.N-höchstes Gehalt Schreiben Sie ei...
Inhaltsverzeichnis Spezifikation a. Die Auslageru...