1. Übersicht1. Grundsatz
Master-Slave-Flussdiagramm 2. UmsetzungMaster-Bibliothek: 192.168.3.13:3310 Slave-Bibliothek: 192.168.3.14:3310 2. Erstellen Sie die Master-Master-Bibliothek Geben Sie den Server 192.168.3.13 ein 1. Installieren Sie das Image docker pull mysql:8.0.26 2. Neues Verzeichnis erstellen mkdir -p /home/apps/mysql-master/{config,log,data} 3. Erstellen und starten docker run -d --name mysql-master \ --restart=immer \ --privilegiert=true \ -p 3310:3306 \ -v /home/apps/mysql-master/config:/etc/mysql/conf.d \ -v /home/apps/mysql-master/log:/var/log/mysql \ -v /home/apps/mysql-master/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql:8.0.26 4. Master-Basiskonfiguration hinzufügen/ändern vim /home/apps/mysql-master/config/my.cnf Fügen Sie den folgenden Inhalt hinzu [Kunde] Standardzeichensatz = utf8 [mysql] Standardzeichensatz = utf8 [mysqld] init_connect = 'SET-Sortierung_Verbindung = utf8_unicode_ci' init_connect='Namen festlegen utf8' Zeichensatzserver = utf8 Sortierserver = utf8_unicode_ci Zeichensatz-Client-Handshake überspringen Namensauflösung überspringen 3. Erstellen Sie eine Slave-InstanzGeben Sie den Server 192.168.3.14 ein 1. Gleiche wie oben beschrieben # Verzeichnis erstellen mkdir -p /home/apps/mysql-slave-01/{config,log,data} # Starten Sie den Container docker run -d --name mysql-slave-01 \ --restart=immer \ --privilegiert=true \ -p 3310:3306 \ -v /home/apps/mysql-slave-01/config:/etc/mysql/conf.d \ -v /home/apps/mysql-slave-01/log:/var/log/mysql \ -v /home/apps/mysql-slave-01/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql:8.0.26 # Ändern Sie die Grundkonfiguration des Slaves vim /home/apps/mysql-slave-01/config/my.cnf # Fügen Sie den folgenden Inhalt hinzu [Client] Standardzeichensatz = utf8 [mysql] Standardzeichensatz = utf8 [mysqld] init_connect = 'SET-Sortierung_Verbindung = utf8_unicode_ci' init_connect='Namen festlegen utf8' Zeichensatzserver = utf8 Sortierserver = utf8_unicode_ci Zeichensatz-Client-Handshake überspringen Namensauflösung überspringen 4. Master-Slave-Konfiguration1. Masterkonfiguration hinzufügen vim /home/apps/mysql-master/config/my.cnf server_id=1 # Binärprotokoll aktivieren log-bin=mysql-bin schreibgeschützt = 0 # Datenbank, die synchronisiert werden muss binlog-do-db=rapid-cloud binlog-do-db=schneller-Cloud-Test # Zu ignorierende Datenbank replicate-ignore-db=mysql replizieren-ignorieren-db=sys replicate-ignore-db=Informationsschema replicate-ignore-db=Leistungsschema 2. Starten Sie den Container neu Docker startet MySQL-Master neu 3. Slave-Konfiguration hinzufügen vim /home/apps/mysql-slave-01/config/my.cnf server_id=2 log-bin=mysql-bin schreibgeschützt=1 binlog-do-db=schnelle-Cloud binlog-do-db=schneller-Cloud-Test replizieren-ignorieren-db=mysql replizieren-ignorieren-db=sys replicate-ignore-db=Informationsschema replicate-ignore-db=Leistungsschema 4. Starten Sie den Container neu Docker startet MySQL-Slave-01 neu 5. Fügen Sie ein Konto hinzu, um Benutzer zu synchronisieren # Geben Sie den Container ein docker exec -it mysql-master /bin/bash # Geben Sie die Haupt-MySQL-Datenbank ein mysql -u root -p # Autorisieren Sie Root für den Remotezugriff (das hat nichts mit Master-Slave zu tun, sondern dient nur dazu, unsere Remoteverbindung zu MySQL zu ermöglichen) # Remote-ALTER-USER 'root'@'%' autorisieren. IDENTIFIED WITH mysql_native_password BY '123456'; # Berechtigungen leeren; # Backup-Benutzer erstellen # Sie sollten zuerst einen neuen Benutzer erstellen. Erstellen Sie den Benutzer „Backup“@„%“, identifiziert durch „123456“; # Führen Sie die Autorisierung aus und erteilen Sie „Backup“@„%“ alle Berechtigungen für *.*. # Berechtigungen leeren; # Remote-ALTER-USER 'backup'@'%' autorisieren. IDENTIFIED WITH mysql_native_password BY '123456'; # Berechtigungen leeren; # Den Status der Masterdatenbank anzeigen „show master status“; 6. Einrichten der Master-Datenbankverbindung in der Slave-Datenbank # Geben Sie den Container ein docker exec -it mysql-slave-01 /bin/bash # Geben Sie die Haupt-MySQL-Datenbank ein mysql -u root -p Ändern Sie Master in master_host='192.168.3.13',master_user='backup',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=0,master_port=3310; 7. Starten Sie die Slave-Synchronisation Kopieren Sie zunächst die Daten der Master-Datenbank in die Slave-Datenbank, einschließlich der Tabellenstruktur und der Daten Löschen Sie das Binärprotokoll der Hauptbibliothek, sodass seine Position bei 0 beginnt. Master-Protokolle nach „mysql-bin.000001“ löschen; Synchronisierung aktivieren # Synchronisierung starten, Slave starten; # Synchronisierung stoppen. # Slave stoppen; # Überprüfen Sie den Synchronisierungsstatus. Show Slave Status\G; 8. Fehlerbehebung Wenn keine Master-Slave-Synchronisierung möglich ist, können Sie Folgendes überprüfen: Zusammenfassen:Die Master- und Slave-Datenbanken geben in ihren Konfigurationsdateien an, welche Datenbanken synchronisiert werden müssen und welche ignoriert werden sollen. Und die Server-ID darf nicht mit der Master-Datenbank identisch sein, die ein bestimmtes Konto und Passwort zum Synchronisieren ihrer eigenen Daten autorisiert. Die Slave-Datenbank verwendet dieses Konto und Passwort, um sich mit der Master-Datenbank zu verbinden und Daten zu synchronisieren. 5. Referenzhttps://www.cnblogs.com/heian99/p/12104189.html https://blog.csdn.net/lilygg/article/details/98187015 Binlog löschen: https://www.cnblogs.com/kiko2014551511/p/11532426.html Dies ist das Ende dieses Artikels über den Beispielcode zur Implementierung der MySQL-Master-Slave-Replikation in Docker. Weitere verwandte Inhalte zur MySQL-Master-Slave-Replikation finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: 18 Sets exquisiter kostenloser Symbolmaterialien im Apple-Stil zum Teilen
>>: Praktische Erfahrung bei der Optimierung von MySQL-Tabellen mit mehreren zehn Millionen Daten
Ohne weitere Umschweife werde ich den Code direkt...
Was ich kürzlich gelernt habe, beinhaltet Kenntni...
In diesem Artikelbeispiel wird der Anwendungscode...
In diesem Artikel sind einige sogenannte Spezifik...
Vorwort Führen Sie den Befehl show create table &...
Ein Datensatz eines Online-MySQL-Transaktionsprob...
Wenn wir verstehen, wie Tomcat gleichzeitige Anfr...
In diesem Artikelbeispiel wird der spezifische Ja...
Der Docker-Container stellt Dienste bereit und la...
Vorwort Nach der Installation von MySQL und Navic...
Im Leben ist das Internet allgegenwärtig. Wir kön...
Inhaltsverzeichnis 1. Was ist JavaScript? 2. Wofü...
MySQL-Abfrage für mehrere Tabellen Hinzufügen ein...
Beim Setzen des Textes im Suchtextfeld springt di...
Inhaltsverzeichnis Vorwort Hintergrund Umsetzungs...