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.
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.
Um die Datenbank mit dem Schema zu initialisieren, befolgen Sie diese Schritte :
mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
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
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!