CSV-Datei in MySQL importieren: Vollständige Anleitung mit LOAD DATA INFILE und Fehlersuche

1. Einführung in das Importieren von CSV-Dateien in MySQL

Das Importieren von CSV-Dateien in MySQL ist ein leistungsstarkes Mittel, um die Datenverwaltung zu optimieren und die Notwendigkeit manueller Dateneingaben zu beseitigen. Zum Beispiel, wenn Sie große Mengen an Informationen, die aus mehreren Datenquellen gesammelt wurden, in eine Datenbank importieren müssen oder Daten aus externen Systemen automatisch verarbeiten wollen, ist der CSV-Import äußerst nützlich.

Häufige Anwendungsfälle für den CSV-Import

  • Verarbeitung großer Datenmengen : Anstatt tausende Datensätze manuell einzugeben, können Sie diese schnell mit dem CSV-Import verarbeiten.
  • Datenmigration : Praktisch beim Importieren von Daten, die aus anderen Systemen exportiert wurden, in MySQL.
  • Regelmäßige Datenaktualisierungen : Systeme, die periodische Datenupdates benötigen, können den Vorgang mit CSV-Dateien automatisieren.

2. Voraussetzungen

Bevor Sie eine CSV-Datei in MySQL importieren, sind mehrere Einstellungen und Vorbereitungen erforderlich. Diese gewährleisten einen reibungslosen und fehlerfreien Datenimport.

2.1 Erforderliche Umgebung

  • MySQL-Server-Installation Es wird davon ausgegangen, dass MySQL ordnungsgemäß installiert ist. Stellen Sie sicher, dass MySQL in Ihrer Umgebung korrekt läuft, egal ob Windows, macOS oder Linux.
  • Erforderliche Berechtigungen prüfen Um eine CSV-Datei zu importieren, muss der MySQL‑Benutzer über die entsprechenden Rechte verfügen. Insbesondere ist die Ausführungsberechtigung für LOAD DATA INFILE erforderlich. Ohne dieses Recht kann der Import verweigert werden.

2.2 CSV-Dateiformat

  • Trennzeichen CSV-Dateien sind typischerweise kommagetrennt, aber in manchen Fällen können Tabs oder Semikolons verwendet werden. Prüfen Sie vorher, welches Trennzeichen verwendet wird.
  • Kodierung prüfen Wenn eine CSV-Datei mit einer anderen Zeichenkodierung (wie UTF‑8 oder Shift‑JIS) gespeichert ist, kann es beim Import zu Zeichenverfälschungen kommen. Überprüfen Sie die Dateikodierung im Voraus und konvertieren Sie sie bei Bedarf.

3. CSV-Import mit dem Befehl LOAD DATA INFILE

Der gängigste Weg, eine CSV-Datei in MySQL zu importieren, ist die Verwendung des Befehls LOAD DATA INFILE. Dieser Befehl ermöglicht es, große Datenmengen einfach in eine Datenbank zu laden.

3.1 Grundsyntax

Im Folgenden finden Sie die grundlegende Syntax zum Importieren einer CSV-Datei in MySQL.

LOAD DATA INFILE '/path/to/file.csv' INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
  • FIELDS TERMINATED BY : Gibt das Feldtrennzeichen an. Üblicherweise wird ein Komma verwendet.
  • LINES TERMINATED BY : Gibt das Zeilenendezeichen an. In der Regel wird \n (Zeilenumbruch) verwendet.

3.2 Beispielausführung

Das folgende Beispiel importiert eine Datei namens user_data.csv in die Tabelle users.

LOAD DATA INFILE '/path/to/user_data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
  • IGNORE 1 LINES : Überspringt die erste Zeile (Kopfzeile) der CSV-Datei. Diese Option ist nützlich, wenn Spaltennamen in der ersten Zeile enthalten sind.

3.3 Wichtige Hinweise: Dateipfad und Berechtigungen

Beim Angeben des Dateipfads muss sich die Datei in einem Verzeichnis befinden, das vom MySQL‑Server aus zugänglich ist. Wenn der Server nicht auf die Datei zugreifen kann, verwenden Sie LOAD DATA LOCAL INFILE, um Daten von der Client‑Seite zu laden.

4. Häufige Problemlösungen

Im Folgenden finden Sie Lösungen für häufig auftretende Probleme beim CSV-Import.

4.1 Probleme mit dem Dateipfad

Wenn der Dateipfad nicht korrekt angegeben ist, kann eine Fehlermeldung wie The MySQL server is not permitted to read from the file erscheinen. In diesem Fall prüfen Sie, ob der serverseitige Dateipfad korrekt ist. Sie können auch die Option LOAD DATA LOCAL INFILE verwenden, um eine lokale Datei zu laden.

LOAD DATA LOCAL INFILE '/path/to/file.csv' INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

4.2 Probleme mit der Zeichenkodierung

Wenn die Datei mit einer anderen Zeichenkodierung gespeichert ist, kann es beim Import zu Zeichenverfälschungen kommen. Um dieses Problem zu vermeiden, prüfen Sie die Dateikodierung im Voraus und geben Sie das passende Zeichen­set in MySQL an.

SET NAMES 'utf8mb4';

5. Praktisches Beispiel: CSV-Importverfahren

Hier erklären wir das schrittweise Verfahren zum Importieren einer echten CSV‑Datei in MySQL.

5.1 Vorbereiten der CSV‑Datei

Erstellen Sie eine CSV‑Datei (data.csv) mit folgendem Inhalt.

id,name,age
1,Taro Yamada,28
2,Hanako Sato,34
3,Ichiro Tanaka,45

5.2 Ausführen des Befehls

Führen Sie den folgenden Befehl aus, um die erstellte CSV‑Datei in die Tabelle users zu importieren.

LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

Dieser Befehl importiert Daten ab der zweiten Zeile der CSV‑Datei in die Tabelle users.

6. Erweitert: Fehlerbehandlung und Verhinderung doppelter Daten

Dieser Abschnitt erklärt, wie Fehler beim CSV‑Import behandelt werden und wie mit doppelten Daten umgegangen wird.

6.1 Umgang mit doppelten Daten

Wenn Daten mit demselben Schlüssel bereits existieren, können Sie die Option REPLACE verwenden, um doppelte Zeilen mit neuen Daten zu überschreiben.

LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
REPLACE;

6.2 Fehlerbehandlung

Wenn beim Import Fehler auftreten, Sie aber die Verarbeitung fortsetzen möchten, verwenden Sie die Option IGNORE. Diese überspringt problematische Zeilen und importiert die übrigen gültigen Daten.

LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
IGNORE;

7. Fazit

Das Importieren von CSV‑Dateien in MySQL ist ein leistungsstarkes Werkzeug, um große Datensätze effizient zu verarbeiten und Daten zwischen Systemen zu migrieren. Durch das Verständnis der grundlegenden Verfahren und die Implementierung einer ordnungsgemäßen Fehlerbehandlung sowie Strategien zur Vermeidung doppelter Daten können Sie stabile und zuverlässige Datenimporte erreichen.

In zukünftigen Artikeln werden wir auch detailliert erklären, wie Daten aus einer MySQL‑Datenbank exportiert werden. Verbessern Sie weiterhin Ihre Fähigkeiten im Datenmanagement.