Can't get stat of Errcode 13 bei LOAD DATA INFILE

MySQL, PostgreSQL, SQLite
rambrand
Posts: 19
Joined: 2003-09-01 09:42

Can't get stat of Errcode 13 bei LOAD DATA INFILE

Post by rambrand » 2004-08-18 22:48

Hallo,

ich hab in diesem Forum und über Google schon alle möglichen Lösungen gesucht, aber bisher keine funktionierende gefunden.

Ich mach mit SELECT * INTO OUTFILE ... Backups meiner Datenbank.
Mit LOAD DATA INFILE will ich diese wieder einlesen.

Auf meinem lokalen Windows-System funktioniert es. Auf dem Root-Server nicht. Soweit bin ich schon, dass ich weiss, dass es die Zugriffsrechte sind. Aber wie ich diese setzen muss, das habe ich bisher nicht gefunden.

Auf dem Server ist MySQL 3.23.58 im Einsatz

Das Backup mache ich mittels PHP:
SELECT * INTO OUTFILE "".$MySQL_SiCoPfad.date(Ymd)."/".$tabelle[$i].".bak" FIELDS TERMINATED BY ';' LINES TERMINATED BY "rn" FROM ".$tabelle[$i]

Das Restore so:
LOAD DATA INFILE "".$MySQL_SiCoPfad.$verzeichnis."/".$tabelle[$i].".bak" REPLACE INTO TABLE ".$tabelle[$i]." FIELDS TERMINATED BY ';' LINES TERMINATED BY 'rn'

Beides liefert mir den Errcode 13 Permission denied, also Zugriffsprobleme. Aber selbst wenn ich allen Dateien mit chmod auf 777 setze, ändert sich nichts an den Fehlermeldungen.

Jemand eine Idee ?

Vielen Dank,

Markus Haupt

jhnet
Posts: 98
Joined: 2004-07-20 11:43

Re: Can't get stat of Errcode 13 bei LOAD DATA INFILE

Post by jhnet » 2004-08-19 09:59

Wirklich nur ne Idee:
Funktioniert die gleiche Abfrage denn ohne dass Sie in eine Datei geschrieben wird?
Zumindest für JOINs nutzt mysql temporäre Dateien, das Verzeichnis in welches diese Dateien geschrieben werden ist in der Konfiguration (oder im Startscript) von mysql festgelegt. Angenommen dieses Temp-Verzeichnis verweist auf /tmp, dann solltest Du folgendes probieren:

Code: Select all

chmod 5777 /tmp
Jörg