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
herunterladen Offizieller MySQL-Download, wählen ...
Kürzlich stieß ich während des Entwicklungsprozes...
Das Team ersetzte den neuen Rahmen. Alle neuen Un...
In diesem Artikel wird hauptsächlich der Fall vor...
Inhaltsverzeichnis Was ist passiert? Verwendung S...
Konventionelle Lösung Verwenden Sie FileReader, u...
Vorwort Ich habe kürzlich an einigen Front-End-Pr...
Wenn ein Unternehmen eine automatisierte Docker-B...
Gestern habe ich einen Alibaba Cloud-Server gekau...
Das Modul async_hooks ist eine experimentelle API...
Dieser Artikel beschreibt, wie Sie SQL-Dateien mi...
yum install httpd php mariadb-server –y Notieren ...
Dadurch werden nicht nur die Kosten für die Entwic...
Server: Ubuntu Server 16.04 LSS Kunde: Ubuntu 16....
Vue-Methoden und -Eigenschaften 1. Methoden Verwe...