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

So verwenden Sie den MySQL-Autorisierungsbefehl „grant“

Die Beispiele in diesem Artikel laufen auf MySQL ...

Möglichkeiten zur Verbesserung der MongoDB-Leistung

MongoDB ist eine Hochleistungsdatenbank, bei der ...

Analysieren Sie den Unterschied zwischen berechnet und beobachtet in Vue

Inhaltsverzeichnis 1. Einführung in die Computert...

Analyse des Konfigurationsprozesses der Nginx-HTTP-Integritätsprüfung

Passive Prüfung Mit passiven Integritätsprüfungen...

Detailliertes Beispiel zur Verwendung der distinct-Methode in MySQL

Ein deutlicher Bedeutung: distinct wird verwendet...

So konvertieren Sie ein JavaScript-Array in eine Baumstruktur

1. Nachfrage Das Backend stellt solche Daten bere...

Vue implementiert Multi-Grid-Eingabefeld auf mobilem Endgerät

Vor Kurzem hat das Unternehmen die Anforderung ge...

So unterscheiden Sie MySQLs innodb_flush_log_at_trx_commit und sync_binlog

Die beiden Parameter innodb_flush_log_at_trx_comm...

Zwei Möglichkeiten zur Visualisierung von ClickHouse-Daten mit Apache Superset

Apache Superset ist ein leistungsstarkes BI-Tool,...

7 coole dynamische Website-Designs zur Inspiration

Im Bereich Design gibt es jedes Jahr unterschiedl...