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
Als wir nginx eingeführt haben, haben wir nginx a...
Inhaltsverzeichnis Hintergrundbeschreibung Erstel...
Um umfassendere Ergebnisse zu erhalten, müssen wi...
In diesem Artikel werden die Installations- und K...
In diesem Artikelbeispiel wird der spezifische Co...
Daten sind das wichtigste Kapital eines Unternehm...
Drag & Drop ist eine gängige Funktion im Fron...
Heute habe ich gesehen, wie ein Freund im Q&A...
Inhaltsverzeichnis Vorwort 1. Stildurchdringung 1...
Inhaltsverzeichnis Lösung: 1. IGNORIEREN 2. ERSET...
Der digitale Scrolleffekt auf großen Bildschirmen...
Verifizierungsumgebung: [root@~~/]# rpm -qa | gre...
Lösung: Ändern Sie die Datei setup.py direkt in d...
Der Test wird in der Node.JS-Umgebung bestanden. ...
Beim Entwurf von Tabellenstrukturen gehören numer...