J'essaie de vider le contenu d'une table dans un fichier csv en utilisant une instruction MySQL SELECT INTO OUTFILE. Si je fais:
SELECT column1, column2
INTO OUTFILE 'outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
outfile.csv sera créé sur le serveur dans le même répertoire dans lequel les fichiers de cette base de données sont stockés.
Cependant, lorsque je change ma requête en:
SELECT column1, column2
INTO OUTFILE '/data/outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
Je reçois:
ERROR 1 (HY000): Can't create/write to file '/data/outfile.csv' (Errcode: 13)
Errcode 13 est une erreur d'autorisations, mais je l'obtiens même si je change la propriété de / data en mysql: mysql et lui donne des autorisations 777. MySQL fonctionne en tant qu'utilisateur "mysql".
Étrangement, je peux créer le fichier dans / tmp, mais pas dans un autre répertoire que j'ai essayé, même avec des autorisations définies de sorte que l'utilisateur mysql puisse écrire dans le répertoire.
Il s'agit de MySQL 5.0.75 fonctionnant sous Ubuntu.
/tmp
.