Heim >Datenbank >MySQL-Tutorial >Wie initialisiere ich erfolgreich ein MySQL-Datenbankschema in einem Docker-Container?

Wie initialisiere ich erfolgreich ein MySQL-Datenbankschema in einem Docker-Container?

Susan Sarandon
Susan SarandonOriginal
2024-12-04 06:41:101027Durchsuche

How to Successfully Initialize a MySQL Database Schema within a Docker Container?

So initialisieren Sie eine MySQL-Datenbank mit Schema in einem Docker-Container

Das Initialisieren einer Datenbank mit einem Schema kann ein komplexer Prozess sein, insbesondere wenn Sie einen Docker-Container verwenden. Dieser Artikel befasst sich mit einem häufigen Problem, das beim Initialisieren einer MySQL-Datenbank mit Schema mithilfe eines Docker-Containers auftritt, und bietet eine Lösung, die auf dem Speichern des Schemas in einer Datei und dem Hinzufügen zum Verzeichnis /docker-entrypoint-initdb.d basiert.

Problembeschreibung

Beim Versuch, einen Docker-Container mit einer MySQL-Datenbank zu erstellen und ihn mit einem Schema wie folgt zu initialisieren Dockerfile:

FROM mysql
MAINTAINER (me) <email>

# Copy the database schema to the /data directory
COPY files/epcis_schema.sql /data/epcis_schema.sql

# Change the working directory
WORKDIR data

CMD mysql -u $MYSQL_USER -p $MYSQL_PASSWORD $MYSQL_DATABASE < epcis_schema.sql

Der Container startet nicht und der CMD-Befehl wird nicht erfolgreich ausgeführt.

Lösung

Um die Datenbank mit dem Schema zu initialisieren, befolgen Sie diese Schritte :

  1. Speichern Sie das MySQL-Schema in einer Datei mit:
mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
  1. Fügen Sie die Schemadatei zum Verzeichnis /docker-entrypoint-initdb.d in der Docker-Datei hinzu:
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
  1. Starten Sie die Docker-MySQL-Instanz mit:
docker-compose build
docker-compose up

Mithilfe von Im Verzeichnis /docker-entrypoint-initdb.d wird die SQL-Datei bei der Containerinitialisierung automatisch für die MySQL-Datenbank ausgeführt, um sicherzustellen, dass die Datenbank mit dem gewünschten Schema initialisiert wird.

Das obige ist der detaillierte Inhalt vonWie initialisiere ich erfolgreich ein MySQL-Datenbankschema 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