Detaillierte Erklärung zum Importieren/Exportieren von MySQL-Daten im Docker-Container

Detaillierte Erklärung zum Importieren/Exportieren von MySQL-Daten im Docker-Container

Vorwort

Wir alle wissen, dass der Import und Export von MySQL-Daten mit einem mysqldump-Befehl gelöst werden kann, aber was ist, wenn MySQL in einer Docker-Umgebung ausgeführt wird?

Die Lösung besteht darin, den Befehl mysqldump zu verwenden, aber wir müssen den MySQL-Container von Docker aufrufen, um ihn auszuführen, und Volumes so konfigurieren, dass die exportierten Datendateien auf die Festplatte des Hostcomputers kopiert werden können.

Die Arbeitsschritte können also wie folgt unterteilt werden:

  • Konfigurieren von Docker-Volumes
  • Rufen Sie den MySQL-Container von Docker auf und exportieren Sie die Datendatei

Der Datenimport ist zu einfach zu erklären.

Schauen wir uns zunächst die allgemeinen Optionen des Befehls mysqldump an:

  • --all-databases, -A: Alle Datenbanken sichern
  • --databases, -B: Wird zum Sichern mehrerer Datenbanken verwendet. Wenn diese Option nicht vorhanden ist, verwendet mysqldump den ersten Namensparameter als Datenbanknamen und den Rest als Tabellennamen. Mit dieser Option behandelt mysqldum jeden Namen als Datenbanknamen.
  • --force, -f: Sicherung auch bei SQL-Fehler fortsetzen.
  • --host=Hostname, -h Hostname: Name des Backup-Hosts, Standard ist localhost
  • --no-data, -d: exportiert nur die Tabellenstruktur
  • --password[=Passwort], -p[Passwort]: Passwort
  • --port=port_num, -P port_num: Geben Sie die Portnummer für die TCP/IP-Verbindung an
  • --quick, -q: Schneller Export
  • --tables: Überschreibt die Option --databases oder -B und die folgenden Parameter werden als Tabellennamen behandelt
  • --user=Benutzername, -u Benutzername: Benutzername
  • --xml, -X: Als XML-Datei exportieren

Konfigurieren von Volumes

Zuerst verwende ich Docker-Compose, um die Docker-Container anzuordnen. Den vollständigen Konfigurationscode finden Sie in diesem Projekt: liumapp/rabbitmq-mysql-redis-in-docker

Bitte beachten Sie die folgenden Zeilen in der Konfigurationsdatei docker-compose.yml dieses Projekts:

 MySQL:
 Containername: MySQL
 Bild:mysql:5.5.60
 Neustart: immer
 Bände:
  - ./mysql/data:/var/lib/mysql
  - ./mysql/conf/mysqld.conf:/etc/mysql/mysql.conf.d/mysqld.cnf

Die Volumes, die ich für den MySQL-Container konfiguriert habe, dienen dazu, das Verzeichnis mysql/data des Projekts dem Verzeichnis /var/lib/mysql im Docker-Container zuzuordnen.

Wenn ich also den MySQL-Container von Docker öffne und den Exportbefehl ausführe, muss ich nur die Daten im Verzeichnis /var/lib/mysql/ exportieren und kann die entsprechende Datendatei im Verzeichnis ./mysql/data/ des Hostcomputers finden.

Geben Sie den Container zum Exportieren von Daten ein

Erst ausführen

Docker PS

Suchen Sie den Namen des MySQL-Containers

Dann ausführen

docker exec -it mysql /bin/bash

Betreten des Containers

Befehl ausführen

wo ist MySQL

Suchen Sie den Ausführungspfad von MySQL. Dieser lautet: /usr/local/mysql/bin. Rufen Sie ihn mit cd auf.

cd /usr/local/mysql/bin

Bitte beachten Sie, dass sich der Pfad hier auf den Pfad innerhalb des Docker-Containers bezieht und nichts mit Ihrem Hostpfad zu tun hat.

Ausführen des Exportbefehls

mysqldump -u Benutzername -p Datenbankname> Datei .sql speichern

Nach Eingabe des Passwortes ist der Export grundsätzlich erfolgreich. Bitte beachten Sie, dass der Pfad zum Speichern der Datei unter Volumes angegeben werden sollte, also /var/lib/mysql/

Geben Sie dann

Ausfahrt

Verlassen Sie den Container und kehren Sie zum Host-Computer zurück. Dort finden Sie die exportierte Datendatei

Wenn Sie im CSV-Format exportieren möchten, ändern Sie den Befehl mysqldump wie folgt:

mysql -u Benutzername --password=Passwort --database=Datenbankname --execute='SELECT `FIELD`, `FIELD` FROM `TABLE` LIMIT 0, 10000 ' -X > Datei speichern.sql

Du kannst

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Methoden zum Bereitstellen von MySQL-Diensten in Docker und die dabei auftretenden Fallstricke
  • Detaillierte Erklärung zur Verwendung der MySQL-Datenbank im Docker (Zugriff im LAN)
  • Lösung für den Fehler bei der Verbindung mit MySQL in Docker
  • So installieren Sie MySQL 8.0 in Docker
  • Installieren und Ausführen einer MySQL-Instanz auf Docker
  • Eine praktische Aufzeichnung eines Docker-Login-MySQL-Fehlerproblems

<<:  jQuery realisiert den Shuttle-Box-Effekt

>>:  MySQL 5.7.17 Installations- und Konfigurations-Tutorial für Mac

Artikel empfehlen

MySQL-Startfehler InnoDB: Sperren nicht möglich/ibdata1-Fehler

Beim Starten von MySQL in einer OS X-Umgebung wir...

Spezifische Verwendung globaler Variablen von node.js

Globales Objekt Alle Module können aufgerufen wer...

mysql 5.7.11 winx64 anfängliche Passwortänderung

Laden Sie die komprimierte Version von MySQL-5.7....

14 praktische Erfahrungen zur Reduzierung von SCSS-Code um 50 %

Vorwort Sass ist eine Erweiterung der CSS3-Sprach...

Typische Fälle von MySQL-Indexfehlern

Inhaltsverzeichnis Typische Fälle Anhang: Häufige...

HTML-Optimierungstechniken, die Sie kennen müssen

Um die Leistung von Webseiten zu verbessern, begi...

So löschen Sie Datensätze in MySQL automatisch vor einer bestimmten Zeit

Über Ereignisse: MySQL 5.1 hat begonnen, das Konz...