Docker-Fallanalyse: Erstellen eines MySQL-Datenbankdienstes

Docker-Fallanalyse: Erstellen eines MySQL-Datenbankdienstes

Verwenden Sie das offizielle MySQL-Image, um den Datenbankdienst zu erstellen. Die aktuell neueste Version entspricht der Version 8.0.19. Um Kompatibilitätsprobleme in den folgenden Schritten nach der Aktualisierung der offiziellen Version zu vermeiden, können Sie bei Verwendung des Images die Version 8.0.19 angeben.

1 Konfigurations- und Datenverzeichnisse erstellen

Erstellen Sie auf diesem Computer ein Verzeichnis, um MySQL-Konfigurationen und -Daten zu speichern.

  • Verzeichnis der Konfigurationsdatei: ~/docker/conf/mysql
  • Datendateiverzeichnis: ~/docker/data/mysql
Docker-Pull MySQL

3 Kopieren Sie die Konfigurationsdatei vom Image auf den Host

Die internen Konfigurationsdateien des Images werden im Verzeichnis /etc/mysql gespeichert. Ein temporärer Container wird erstellt, um das Konfigurationsdateiverzeichnis in das lokale Verzeichnis ~/docker/conf/ zu kopieren.

# Erstellen Sie einen Container mit dem Namen mysql docker run --name mysql -e MYSQL_ROOT_PASSWORD=crane -d mysql

# Kopieren Sie die Konfigurationsdatei im Docker-Container in das lokale Verzeichnis ~/docker/conf/mysql docker cp mysql:/etc/mysql /Users/crane/docker/conf/

# Stoppen und löschen Sie den temporären Container docker stop mysql
Docker RM MySQL

4 Erstellen und Ausführen des MySQL-Containers

Hängen Sie die Hostkonfigurations- und Datendateiverzeichnisse in den Docker-Container ein und führen Sie die folgenden Befehle im Terminal aus:

# ~/docker/conf/mysql enthält die MySQL-Konfigurationsdatei # ~/docker/data/mysql enthält die MySQL-Datendatei # Die lokalen Ports 3306 und 33060 sind den Ports 3306 bzw. 33060 in Docker zugeordnet # Das Root-Passwort der Datenbank lautet crane
# -d Docker im Hintergrund ausführen
docker run --name mysql -v ~/docker/conf/mysql:/etc/mysql/conf.d -v ~/docker/data/mysql:/var/lib/mysql -p 3306:3306 -p 33060:33060 -e MYSQL_ROOT_PASSWORD=crane -d mysql

5 Host stellt Verbindung zur Datenbank her

5.1 Terminal-Befehlsverbindung

Nachdem der Container im vorherigen Schritt erfolgreich gestartet wurde, führen Sie den folgenden Befehl im Host-Terminal aus, um eine Verbindung zur Datenbank herzustellen

# Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste. Geben Sie das Datenbankkennwort crane ein
mysql -uroot -p --protocol=tcp

Bildbeschreibung hier einfügen

Der obige Befehl gibt an, dass TCP für die Verbindung mit der Datenbank verwendet werden soll. Wenn Sie --protocol=tcp nicht hinzufügen, wird die Standardverbindung über Socket hergestellt und der folgende Fehler wird gemeldet

Bildbeschreibung hier einfügen

5.2 Datenbank-Tool-Verbindung

Sie können auch eine Verbindung mithilfe von Datenbanktools wie DataGrip herstellen, um entsprechende Datenoperationen durchzuführen.

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

6 MySQL-Protokoll anzeigen

Während des normalen Betriebs des Containers können Sie den folgenden Befehl verwenden, um das Protokoll anzuzeigen

Docker-Protokolle -f MySQL

Verwenden Sie beim Erstellen von Diensten extern bereitgestellte Konfigurationen und Daten, um die Datensicherung und -migration zu erleichtern. Wenn Sie einen Container auf einem anderen Host mit derselben Version des Docker-Images starten und die gesicherte Konfiguration und Daten mounten, erhalten Sie genau dieselbe Datenbankkonfiguration und dieselben Daten.

Siehe das offizielle MySQL-Image

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Beispiel für die Bereitstellung von MySQL auf Docker
  • Installieren und Ausführen einer MySQL-Instanz auf Docker
  • Beispiel zum Erstellen eines MySQL-Clusters mit Docker
  • Methoden zum Bereitstellen von MySQL-Diensten in Docker und die dabei auftretenden Fallstricke

<<:  Detaillierte Erläuterung der Leistungsoptimierung des Web-Frontends: Zusammenführung und Komprimierung von Ressourcen

>>:  So verwenden Sie async und await in JS

Artikel empfehlen

Einige Hinweise zur MySQL-Self-Join-Deduplizierung

Lassen Sie mich kurz das Funktionsszenario erklär...

HTML+Sass implementiert HambergurMenu (Hamburger-Menü)

Vor ein paar Tagen habe ich mir ein Video von ein...

Vue.js implementiert eine Bildwechselfunktion

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

css Alle Elemente ab dem n-ten abrufen

Der spezifische Code lautet wie folgt: <div id...