Errcode: 13 bei LOAD DATA
lixx
- datenbank
Hallo!
Kann mir bitte jemand bei folgendem Problem helfen:
Ich habe folgende SQL-Anweisung:
LOAD DATA INFILE '/tmp/_EoyBsl' INTO TABLE t1 FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY '\' LINES TERMINATED BY '\n' ( f1, f2 );
und bekomme die Meldung:
#13 - Can't get stat of '/tmp/_EoyBsl' (Errcode: 13)
Verwende ich nun den Befehl mit "LOCAL" - so wie es eigentlich gehört, dann bekomme ich die Meldung:
#1148 - The used command is not allowed with this MySQL version
Version = MySQL - 4.1.20
Ersteres sollte eigentlich etwas mit den Zugriffsrechten zu tun haben. Aber auch wenn die Datei auf 777 steht, funzt es nicht.
Und warum er das LOCAL nicht akzeptiert ist mir völlig schleierhaft.
Hat jemand einen Rat für mich?
lg lixx
Ich habe nun folgendes herausgefunden.
Wenn ich mich als admin anmelde und eine Datei im Verzeichnis "/tmp" lade, dann klappt es. Wenn ich versuche eine Datei in einem "httpdocs"-Verzeichnis lade, dann funzt es nicht.
ERROR 13 (HY000): Can't get stat of '/path/to/httpdocs/_EoyBsl' (Errcode: 13)
Irgendwie klingt das für mich nicht logisch. Wie müssen die Rechte gesetzt sein, damit das funktioniert?
Habe die Lösung!
Nachdem ich in der my.cnf die Zeile
#set-variable=local-infile=0
auskommentiert hatte, funktioniert es ;) !!
lg lixx
echo $begrüßung;
Wie müssen die Rechte gesetzt sein, damit das funktioniert?
Derjenige der lesen soll benötigt natürlich Leserechte. Die Holzhammermethode wäre chmod a+r dateiname. Die bessere Methode wäre, sich über die beteiligten Benutzer (z.B. unter dem der MySQL-Server läuft), die Besitzverhältnisse und Rechte der Datei und gegebenenfalls Gruppenzugehörigkeiten zu informieren, und dann nur die notwendigen Rechte zu vergeben.
echo "$verabschiedung $name";