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
Freigeben: 2024-12-04 06:41:10
Original
1026 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren
  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
Nach dem Login kopieren
  1. Starten Sie die Docker-MySQL-Instanz mit:
docker-compose build
docker-compose up
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage