Heim > Datenbank > MySQL-Tutorial > Wie kann ich ein MySQL-Datenbankschema zuverlässig in einem Docker-Container initialisieren?

Wie kann ich ein MySQL-Datenbankschema zuverlässig in einem Docker-Container initialisieren?

Barbara Streisand
Freigeben: 2024-12-05 03:54:13
Original
936 Leute haben es durchsucht

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

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

Das Initialisieren einer MySQL-Datenbank mit einem Schema in einem Docker-Container ist eine häufige Aufgabe, die das Erstellen einer Datenbank umfasst und ein Schema hinein laden. Ein Ansatz hierfür ist die Verwendung einer Docker-Datei und des CMD-Befehls zur Ausführung eines Skripts, das die Datenbank initialisiert. Diese Methode kann jedoch auf Schwierigkeiten stoßen, da der CMD-Befehl nur einen einzelnen Befehl und nicht eine Reihe von Befehlen ausführen kann.

Um dieses Problem zu lösen, besteht ein zuverlässigerer Ansatz darin, den ADD-Befehl zum Hinzufügen der Datenbank zu verwenden Schemadatei in das Verzeichnis /docker-entrypoint-initdb.d. Bei der Containererstellung führt das Skript docker-entrypoint.sh automatisch alle in diesem Verzeichnis befindlichen SQL-Skripte für die MySQL-Datenbank aus.

Geänderte Docker-Datei:

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

Vorbereiten des Schema-Dumps:

Bevor Sie beginnen, stellen Sie sicher, dass Sie über einen Dump Ihres MySQL verfügen Schema in einer Datei mit dem Namen schema.sql gespeichert. Dies kann mit dem Befehl mysqldump erreicht werden:

mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
Nach dem Login kopieren

Starten der Docker-MySQL-Instanz:

Sobald die Docker-Datei geändert und der Schema-Dump vorbereitet ist, können Sie Sie können die Docker-MySQL-Instanz mit Docker Compose starten:

docker-compose build
docker-compose up
Nach dem Login kopieren

Indem Sie diese Schritte befolgen, können Sie dies effektiv tun Initialisieren Sie eine MySQL-Datenbank mit einem Schema in einem Docker-Container. Das Verzeichnis „docker-entrypoint-initdb.d“ stellt sicher, dass das Schema während der Containererstellung geladen wird, sodass Sie über eine vorab aufgefüllte Datenbank mit dem gewünschten Schema verfügen.

Das obige ist der detaillierte Inhalt vonWie kann ich ein MySQL-Datenbankschema zuverlässig in einem Docker-Container initialisieren?. 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