Eine kurze Analyse des Problems, dass MySQL bei der Bereitstellung mit Docker-Compose nicht zugänglich ist

Eine kurze Analyse des Problems, dass MySQL bei der Bereitstellung mit Docker-Compose nicht zugänglich ist

Was ist Docker-Compose

Das Compose-Projekt entstand aus dem vorherigen Fig-Projekt. Es ist in Python geschrieben und weist eine hohe Kompatibilität mit Docker/Swarm auf. Compose ist ein Tool zum Orchestrieren von Docker-Containern. Es definiert und führt Multi-Container-Anwendungen aus. Mehrere Container können mit einem Befehl gestartet werden. Mit Docker Compose müssen Sie zum Starten von Containern keine Shell-Skripte mehr verwenden. Compose verwaltet mehrere Docker-Container über eine Konfigurationsdatei. In der Konfigurationsdatei werden alle Container über Dienste definiert. Anschließend wird das Docker-Compose-Skript verwendet, um die Anwendung, die Dienste in der Anwendung und die Container aller abhängigen Dienste zu starten, zu stoppen und neu zu starten. Es eignet sich sehr gut für Szenarien, in denen mehrere Container für die Entwicklung kombiniert werden. Die Standardvorlagendatei für Docker-Compose ist docker-compose.yml, in der jeder definierte Dienst automatisch erstellt werden muss, indem ein Image über die Image-Anweisung oder die Build-Anweisung angegeben wird (Dockerfile ist erforderlich).

Die Verwendung von Compose umfasst grundsätzlich die folgenden drei Schritte:

1. Definieren Sie Ihre Anwendungsumgebung in einer Docker-Datei, damit sie überall repliziert werden kann.
2. Definieren Sie die Dienste, aus denen Ihre Anwendung besteht, in docker-compose.yml, damit sie zusammen in einer isolierten Umgebung ausgeführt werden können.
3. Führen Sie abschließend docker-compose up aus. Compose startet und führt die gesamte Anwendung aus.

Sehen wir uns das Problem an, dass bei der Bereitstellung durch Docker-Compose nicht auf MySQL zugegriffen werden kann.

Dieses Problem bereitet mir schon lange Probleme. Nachdem ich docker-compose zum Bereitstellen von MySQL verwendet habe, kann nach dem Erstellen des Containers mit mysql -u root -p darauf zugegriffen werden, aber es kann keine Verbindung mit dem SQL-Client hergestellt werden. Ich habe also bei Google nach vielen Informationen gesucht und schließlich festgestellt, dass das Hinzufügen command: --default-authentication-plugin=mysql_native_password dieses Problem lösen kann. Es hängt immer noch mit der Kennwortverschlüsselungsmethode zusammen.

Version: "3.3"
Leistungen:
 Redis:
 Bild: sameersbn/redis:latest
 Häfen:
  - „6379:6379“
 Bände:
  – redis_data:/var/lib/redis
 Neustart: immer
 MySQL:
  Bild: mysql:latest
  Neustart: immer
  Befehl: --default-authentication-plugin=mysql_native_password #Diese Codezeile löst das Problem nicht zugänglicher Netzwerke:
   -Entwickler
  Häfen:
   - „3306:3306“
  Umfeld:
   MYSQL_ROOT_PASSWORD: abc123
   MYSQL_USER: "Test"
   MYSQL_PASS: "Test"
  Bände:
   -mysql_data:/var/lib/mysql
Netzwerke:
 Entwickler:
  Treiber: Brücke
Bände:
 redis_daten:
 mysql_daten:

Zusammenfassen

Oben habe ich Ihnen das Problem der unzugänglichen MySQL-Bereitstellung mit Docker-Compose vorgestellt. Ich hoffe, es wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • Erläutern Sie die Bereitstellung und Konfiguration des Clickhouse Docker-Clusters anhand von Beispielen.
  • Detaillierte Erläuterung des Beispiels eines PHP-Projekts zur Docker-Compose-Bereitstellung
  • Docker-Compose - Bereitstellung der chinesischen Gitlab-Version per Mausklick - Methodenschritte
  • So stellen Sie Gitlab mit Docker-Compose bereit
  • Tutorial zum schnellen Bereitstellen von Clickhouse mit Docker-Compose

<<:  Basierend auf Vue-Simple-Uploader, kapselt die globale Upload-Plug-In-Funktion des Dateisegment-Uploads, des sofortigen Uploads und der Breakpoint-Fortsetzung

>>:  Anweisungen zum Wiederherstellen von Daten nach versehentlichem Löschen einer MySQL-Datenbank

Artikel empfehlen

Kann Asynchronität in JavaScript „Await“ speichern?

Ich wusste vorher, dass man await verwenden muss,...

Eine kurze Analyse von Patroni in Docker-Containern

Inhaltsverzeichnis Erstellen eines Images Dateist...

Detaillierter Prozessbericht der Vue2-Initiierungsanfragen mit Axios

Inhaltsverzeichnis Vorwort Axios-Installation und...

Beispiel für utf8mb4-Sortierung in MySQL

Allgemeine utf8mb4-Sortierregeln in MySQL sind: u...

Analyse der gemeinsamen Indexfunktion von MySQL und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispie...

MySQL-Operator-Zusammenfassung

Inhaltsverzeichnis 1. Arithmetische Operatoren 2....

Implementierung des HTML-Gleit- und Schwebeball-Menüeffekts

CSS-Stile html,Text{ Breite: 100 %; Höhe: 100%; R...

MySQL-Abfrage redundanter Indizes und ungenutzter Indexoperationen

MySQL 5.7 und höhere Versionen ermöglichen die di...

Konfiguration der primären Netzwerk-Portzuordnung für Docker

Portzuordnung Wenn vor dem Start des Docker-Conta...

Vue realisiert den Prozentbalkeneffekt

In diesem Artikel wird der spezifische Code von V...