Ich habe überall nachgesehen und keine Lösung gefunden, jede Hilfe wäre großartig.
Abfrage:
LOAD DATA INFILE '/Users/name/Desktop/loadIntoDb/loadIntoDB.csv'
INTO TABLE `tba`.`tbl_name`
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(
field1, field2, field3
)
Error:
Can't get stat of '/Users/name/Desktop/loadIntoDb/loadIntoDB.csv' (Errcode:2)
HINWEIS:
Ich verwende den MySQL Query-Browser unter OSX 10.6.4 und verbinde mich mit MySQL 5.x
Dinge, die ich ausprobiert habe:
versuchen Sie, LOAD DATA LOCAL INFILE
anstelle von LOAD DATA INFILE
zu verwenden.
Überprüfen Sie andernfalls, ob apparmor für Ihr Verzeichnis aktiv ist
Ich hatte ein ähnliches Problem. Die Auflösung war ein leicht hässlicher Hack, aber viel einfacher zu merken als Appar-Workarounds, vorausgesetzt, Sie können "Sudo". Zuerst musste ich die Eingabedatei in das Mysql-Unterverzeichnis für die Datenbank legen, die ich verwendete:
Sudo cp myfile.txt /var/lib/mysql/mydatabasename
Dies führt zu einer Kopie und belässt 'root
' als Dateieigentümer. Nach dem Einstieg in mysql und einem USE mydatabasename
konnte ich die entsprechende Tabelle mit füllen
LOAD DATA INFILE 'mytabdelimitedtextfile.txt' INTO TABLE mytablename;
Die Verwendung des Parameters --local hilft dabei.
Beispiel: mysqlimport --local databasename file.txt -p
source: http://dev.mysql.com/doc/refman/5.1/de/load-data.html "Durch die Option --local werden von mysqlimport Datendateien vom Client gelesen Wirt"
Das Kopieren von Inhalten nach/tmp und das Verwenden des Quellordners hat für mich den Trick bewirkt. Ich benutze MariaDB, und meine Version erlaubt nicht die Verwendung des Moduls "LOCAL" zum CSV-Ordner funktionierte auch nicht.
Ich hatte das gleiche Problem beim Auffüllen einer Tabelle in Mysql auf einer AWS-Instanz.
In meinem Fall hatte ich die CSV-Datei in der Instanz selbst.
Das Setzen des absoluten Pfades löste mein Problem.
Hier ist die Zeile aus der MySQL-Dokumentation
Wenn LOCAL angegeben ist, wird die Datei vom Client-Programm auf dem Client-Host gelesen und an den Server gesendet. Die Datei kann als vollständiger Pfadname angegeben werden, um den genauen Speicherort anzugeben. Wenn ein relativer Pfadname angegeben wird, wird der Name relativ zu dem Verzeichnis interpretiert, in dem das Client-Programm gestartet wurde.