Tom: Zugriffsfehler bei Output in ein File

Beitrag lesen

Hello Bademeister,

MWn hat MySQL aus Sicherheitsgründen inzwischen ein eigenes Verzeichnis für Outfiles eingeführt, das benutzt wird, wenn kein qualifizierter Pfad angegeben wurde.

Danke. Das kann ich so bisher noch nicht ganz bestaetigen, aber ich habe unabahaengig davon in der Doku jedenfalls den (d.h. einen) Grund gefunden, warum unser Vorhaben zum Scheitern verurteilt war:

"The SELECT ... INTO OUTFILE statement is intended primarily to let you very quickly dump a table to a text file on the server machine. If you want to create the resulting file on some client host other than the server host, you cannot use SELECT ... INTO OUTFILE. In that case, you should instead use a command such as mysql -e "SELECT ..." >  file_name to generate the file on the client host."

Es handelt sich wohl auch eher um diese Einschränkung:

The SELECT ... INTO OUTFILE 'file_name' form of SELECT writes the selected rows to a file. The file is created on the server host, so you must have the FILE privilege to use this syntax. file_name cannot be an existing file, which among other things prevents files such as /etc/passwd and database tables from being destroyed. As of MySQL 5.0.19, the character_set_filesystem  system variable controls the interpretation of the file name

Ideen zur Lösung:

1. Die Datei darf noch nicht bestehen
2. im angegeben Verzeichnis muss der aktive User schreiben dürfen
   (oder ist es doch der MySQL-Server?)
3. Das FILE-Recht muss für den User gesetzt sein im MySQL-Rechtesystem
   (was dann doch wieder auf den User hindeutet, der im Verzeichnis schreiben dürfen muss)

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de