MySQL-Fehler beim Laden von CSV-Dateidaten in die Tabelle

540
Learning

Ich versuche, den Inhalt einer CSV-Datei mit den folgenden MySQL-Befehlen unter Windows in eine Tabelle zu laden:

LOAD DATA LOCAL INFILE 'C:/Users/TD_DI_026.csv' INTO TABLE digitalTags FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS; 

Dies gibt mir jedoch einen Fehler. The used command is not allowed with this MySQL version Ich habe die Datei my.ini bereits geändert, um Folgendes aufzunehmen:

[mysql] loose-local-infile=1 

und der Befehl

SHOW GLOBAL VARIABLES LIKE 'local_infile'; 

zeigt local_infile als eingeschaltet an.

Ich habe es auch versucht, in my.ini zu entfernen Localund secure_file_priv = ""einzustellen. Aber ich bekommeError Code: 29. File 'C:\Users\TD_DI_026.csv' not found (OS errno 13 - Permission denied)

Was könnte dieses Problem verursachen?

1

2 Antworten auf die Frage

1
Alex

Es handelt sich nicht um ein Problem, sondern um eine Sicherheitsfunktion. Sie müssen für jede Datenbankeinbeziehung explizit aus der lokalen Datei aktivieren:

mysql -u user -p --local-infile=1 YourDatabaseName 

Stellen Sie sicher, dass Sie userdas Privileg erteilt habenFILE

Platzieren Sie keine CSV-Datei C:\Users\TD_DI_026.csv, sondern verwenden Sie stattdessen den Ort:

C:\Users\Public\Download\TD_DI_026.csv 

Fügen Sie auch folgendes hinzu my.cnf/my.ini:

[mysqld] local-infile = 1  
0
LSerni

Fehlercode: 29. Datei 'C: \ Users \ TD_DI_026.csv' nicht gefunden (OS errno 13 - Berechtigung verweigert)

MySQL kann nicht auf die Datei zugreifen C:\Users, wahrscheinlich weil sie Ihnen gehört.

Platzieren Sie es an einem Ort, an dem der MySQL Server es erreichen kann, oder erteilen Sie dem MySQL-Benutzer explizit den Zugriff auf ein Verzeichnis.