Vorwort Dieser Artikel beschreibt, wie ich Docker-Compose und Dockerfile verwende, um eine auf Binlog basierende MySQL-Master-Slave-Umgebung zu erstellen. Wenn Sie die Schritte in diesem Artikel genau befolgen, können Sie meiner Meinung nach schnell eine grundlegende MySQL-Master-Slave-Umgebung erstellen. einführen Die MySQL Master-Slave-Synchronisierung gliedert sich in drei Schritte:
Konfiguration Erstellen der Verzeichnisstruktur Lassen Sie uns zunächst die Verzeichnisstruktur erstellen. Meine Verzeichnisstruktur ist wie folgt. Wenn Sie das Verzeichnis nach Ihren eigenen Vorstellungen erstellen möchten, achten Sie darauf, den Dateipfad in der Datei docker-compose.yaml und der Dockerfile-Datei unten zu ändern. Konfigurieren der Docker-Compose-Vorlagendatei Version: "3" Leistungen: MySQL-Master: bauen: Kontext: ./ Dockerdatei: mysql/master/Dockerdatei Containername: MySQL-Master Bände: - ./mysql/master/data:/var/lib/mysql Neustart: immer Häfen: - 3305:3306 Links: -mysql-Sklave MySQL-Slave: bauen: Kontext: ./ Dockerdatei: mysql/slave/Dockerdatei Containername: MySQL-Slave Bände: - ./mysql/slave/data:/var/lib/mysql Neustart: immer Häfen: -3306:3306 Konfigurieren Sie die Datei cluster.cnf und die Dockerfile-Datei des Masterknotens [mysqld] server_id=100 binlog-ignore-db=mysql log-bin=Replikate-MySQL-bin binlog_cache_size=1M binlog_format=gemischt Slave_Überspringen_Fehler=1062 # Mein MySQL ist 8.x, also muss ich default_authentication_plugin=mysql_native_password wie folgt konfigurieren Zeichensatzserver = utf8mb4 Sortierserver = utf8mb4_unicode_ci VON mysql:latest HINZUFÜGEN ./mysql/master/cluster.cnf /etc/mysql/conf.d/cluster.cnf ENV MYSQL_ROOT_PASSWORD=Passwort Konfigurieren Sie die Datei cluster.cnf und die Dockerfile-Datei des Slave-Knotens [mysqld] server_id=101 binlog-ignore-db=mysql binlog_cache_size=1M binlog_format=gemischt Slave_Überspringen_Fehler=1062 relay_log=Replikate-MySQL-Relay-Bin log_slave_updates=1 schreibgeschützt=1 # Mein MySQL ist 8.x, also muss ich default_authentication_plugin=mysql_native_password wie folgt konfigurieren Zeichensatzserver = utf8mb4 Sortierserver = utf8mb4_unicode_ci VON mysql:latest HINZUFÜGEN ./mysql/slave/cluster.cnf /etc/mysql/conf.d/cluster.cnf ENV MYSQL_ROOT_PASSWORD=Passwort Erstellen eines Containers docker-compose up -d MySQL-Master MySQL-Slave Führen Sie den obigen Befehl aus, um einen Container zu erstellen. Wenn die Erstellungszeit zu lang ist, können Sie die Bildquelle ändern, z. B. die folgenden inländischen Bildquellen in hoher Qualität: NetEase: http://hub-mirror.c.163.com Alibaba Cloud: http://<Ihre ID>.mirror.aliyuncs.com Universität für Wissenschaft und Technologie von China: http://docker.mirrors.ustc.ed... Nachdem der Build abgeschlossen ist, überprüfen Sie mit dem Befehl Konfigurieren von Slave-Knoten Rufen Sie zunächst den MySQL-Mastercontainer mit dem Docker-Befehl auf, melden Sie sich dann bei MySQL an und geben Sie den Befehl Geben Sie als Nächstes den Docker-Befehl in den MySQL-Slave-Container ein, melden Sie sich dann bei MySQL an und geben Sie die folgende Anweisung ein, um eine Verbindung mit MySQL-Master herzustellen. ÄNDERN SIE MASTER IN MASTER_HOST='mysql-master', MASTER_USER='root', MASTER_PASSWORD=das von Ihnen festgelegte Passwort, MASTER_LOG_FILE=Dateiparameter, der im vorigen Schritt erhalten wurde, MASTER_LOG_POS=Im vorherigen Schritt erhaltener Positionsparameter; Geben Sie nach Eingabe des Befehls den Befehl Testen Sie den Synchronisationsstatus des Master-Slave-Knotens Melden Sie sich beim mysql-master-Knoten an und erstellen Sie eine neue Datenbank. Nachdem die Datenbank erfolgreich erstellt wurde, wechseln Sie zum mysql-slave-Knoten und geben Sie Zusammenfassen Dies sind die Schritte, die ich aufgezeichnet habe, als ich versuchte, eine MySQL-Master-Slave-Architektur zu erstellen. Dies ist das Ende dieses Artikels über die Verwendung von Docker zum Erstellen einer MySQL-Master-Slave-Umgebung. Weitere Informationen zur Verwendung von Docker zum Erstellen einer MySQL-Master-Slave-Umgebung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
>>: Detaillierte Erklärung der Unterschiede und Anwendungen von {{}}, v-text und v-html in Vue
1. Langsame Abfrage aufgrund fehlenden oder ungül...
Uniapp-Code <Vorlage> <Ansicht> <i...
Die folgende Grafik zeigt, wie zeitaufwändig es is...
Vorwort: Ich wollte schon immer wissen, wie eine ...
Jeden Tag ein jQuery-Plugin - jQuery-Plugin zur I...
Hier sind zwei Terminal-Split-Screen-Tools: scree...
Es gibt zu viele Artikel über Webstandards zur We...
Docker-Compose stellt Gitlab bereit 1. Docker ins...
Obwohl das W3C einige Standards für HTML festgeleg...
Vor kurzem musste ich alle Felder einer verknüpft...
Verwenden Sie CSS3, um coole Radar-Scan-Bilder zu...
Dieser Artikel stellt ein Beispiel vor, wie man m...
Wenn Ihre MySQL-Datenbank auf einem CentOS7-Syste...
Der Standardzeittyp (Datum/Uhrzeit und Zeitstempe...
Wenn Sie MySQL zum ersten Mal lernen, verstehen S...