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

Vue basierend auf einer Element-Button-Berechtigungsimplementierungslösung

Hintergrundanforderungen: Das ERP-System muss ein...

So implementieren Sie die Kommunikation zwischen Docker-Containern

Szenario: Eine Laradock-Entwicklungsumgebung (php...

Details zum TypeScript-Mapping-Typ

Inhaltsverzeichnis 1. Zugeordnete Typen 2. Mappin...

Spezifische Verwendung des Autoindex-Moduls in der Nginx-HTTP-Modulreihe

Die Hauptfunktion des Browsermoduls besteht darin...

Detaillierte Erläuterung der Mysql-Funktionsaufrufoptimierung

Inhaltsverzeichnis Funktionsaufrufoptimierung Fun...

Zusammenfassung zur Positionierung in CSS

Es gibt vier Arten der Positionierung in CSS, die...

Hilfe zum Webdesign: Datenreferenz für Web-Schriftgrößen

<br />Der Inhalt wurde aus dem Internet repr...

Datenabfragevorgang im MySQL-JSON-Format

Der Standardtabellenname ist „base_data“ und der ...

Implementierung der MySQL GRANT-Benutzerautorisierung

Bei der Autorisierung geht es darum, einem Benutz...