Heim > Datenbank > MySQL-Tutorial > Wie importiert man Datenbank-Dumps effizient in MySQL in einer Docker-Umgebung?

Wie importiert man Datenbank-Dumps effizient in MySQL in einer Docker-Umgebung?

Barbara Streisand
Freigeben: 2024-12-11 15:14:12
Original
835 Leute haben es durchsucht

How to Efficiently Import Database Dumps into MySQL within a Docker Environment?

Datenbank einrichten und Dump in Dockerfile importieren

In einer Docker-Umgebung kommt es häufig zu Schwierigkeiten beim Konfigurieren von MySQL und beim Importieren von Datenbank-Dumps Der Build-Prozess. Um diese Probleme zu beheben, sollten Sie den folgenden Ansatz in Betracht ziehen:

Das offizielle MySQL Docker-Image enthält eine Funktion, die den Datenimport beim Start ermöglicht. Dadurch entfällt die Notwendigkeit einer manuellen Datenbankerstellung und Dump-Importschritte innerhalb der Docker-Datei. Um dies zu implementieren, erstellen Sie eine Datei „docker-compose.yml“ ähnlich der folgenden:

data:
  build: docker/data/.
mysql:
  image: mysql
  ports:
    - "3307:3306"
  environment:
    MYSQL_ROOT_PASSWORD: 1234
  volumes:
    - ./docker/data:/docker-entrypoint-initdb.d
  volumes_from:
    - data
Nach dem Login kopieren

In dieser Konfiguration sollte sich die Datei „data-dump.sql“ im Verzeichnis „docker/data“ befinden. Durch die Volume-Zuordnung wird es innerhalb des Containers unter /docker-entrypoint-initdb.d zugänglich gemacht.

Hinter den Kulissen enthält das Skript docker-entrypoint.sh im MySQL-Docker-Image einen Codeblock, der SQL automatisch ausführt Dateien gefunden in /docker-entrypoint-initdb.d:

    for f in /docker-entrypoint-initdb.d/*; do
        case "$f" in
            *.sh)  echo "<pre class="brush:php;toolbar:false">FROM n3ziniuka5/ubuntu-oracle-jdk:14.04-JDK8

VOLUME /var/lib/mysql

CMD ["true"]
Nach dem Login kopieren
: running $f"; . "$f" ;; *.sql) echo ": running $f"; "${mysql[@]}" < "$f" && echo ;; *) echo ": ignoring $f" ;; esac echo done

Dadurch wird sichergestellt, dass die Datei data-dump.sql ausgeführt wird beim Container-Start.

Um die Datenpersistenz über Container-Neustarts und -Entfernungen hinweg aufrechtzuerhalten, wird empfohlen, einen separaten Datencontainer zu erstellen. Die Docker-Datei für einen solchen Container kann so einfach sein wie:

Der CMD-Befehl ["true"] wird verwendet, um zu verhindern, dass der Container beendet wird. Der Datencontainer muss sich nicht in einem gestarteten Zustand befinden, um die Datenpersistenz sicherzustellen.

Das obige ist der detaillierte Inhalt vonWie importiert man Datenbank-Dumps effizient in MySQL in einer Docker-Umgebung?. 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