Heim >Datenbank >MySQL-Tutorial >Wie initialisiere ich eine MySQL-Datenbank mit einem vordefinierten Schema in einem Docker-Container?

Wie initialisiere ich eine MySQL-Datenbank mit einem vordefinierten Schema in einem Docker-Container?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-09 06:39:07305Durchsuche

How to Initialize a MySQL Database with a Predefined Schema in a Docker Container?

Initialisierung einer MySQL-Datenbank mit Schema in Docker

Problem

Docker-Benutzer haben Schwierigkeiten bei der Initialisierung eine MySQL-Datenbank mit einem vordefinierten Schema unter Verwendung einer Docker-Datei. Trotz der Einhaltung der Dokumentationsrichtlinien schlägt der CMD-Befehl zum Ausführen des Schemaskripts fehl und verhindert so eine erfolgreiche Containererstellung.

Lösung

Die Lösung beinhaltet einen sequenziellen Ansatz:

  1. MySQL-Schema in Datei ausgeben:
    Exportieren Sie das Datenbankschema in eine Datei mit mysqldump-Befehl.
  2. Schemadatei zum Docker-Container hinzufügen:
    Verwenden Sie in der Docker-Datei den Befehl ADD, um die Datei schema.sql in die Datei /docker-entrypoint-initdb.d zu kopieren Verzeichnis. Dieses Verzeichnis ermöglicht die automatische Ausführung von Skripten bei der Datenbankinitialisierung.
  3. Docker-MySQL-Instanz starten:
    Initiieren Sie den Docker-Container mit dem angegebenen MySQL-Image und der aktualisierten Docker-Datei.

Beispiel Dockerfile:

FROM mysql:5.7.15

MAINTAINER me

ENV MYSQL_DATABASE=<schema_name> \
    MYSQL_ROOT_PASSWORD=<password>

ADD schema.sql /docker-entrypoint-initdb.d

EXPOSE 3306

Zusätzliche Hinweise:

  • Das Skript docker-entrypoint.sh führt automatisch alle Dateien mit einer „.sql“ aus. Erweiterung im Verzeichnis /docker-entrypoint-initdb.d.
  • Diese Methode ermöglicht die Initialisierung einer MySQL-Datenbank mit einem Schema bei der Containererstellung, sodass kein manueller Eingriff erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie initialisiere ich eine MySQL-Datenbank mit einem vordefinierten Schema in einem Docker-Container?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn