J'essaie de vider le contenu d'une table dans un fichier csv à l'aide d'une instruction MySQL SELECT INTO OUTFILE. Si je le 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 que celui où sont stockés les fichiers de cette base de données.
Cependant, lorsque je change ma requête en :
SELECT column1, column2
INTO OUTFILE '/data/outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
J'ai compris :
ERROR 1 (HY000): Can't create/write to file '/data/outfile.csv' (Errcode: 13)
L'Errcode 13 est une erreur de permissions, mais je l'obtiens même si je change la propriété de /data en mysql:mysql et lui donne des permissions 777. MySQL est exécuté en tant qu'utilisateur "mysql".
Bizarrement, je peux créer le fichier dans /tmp, mais pas dans les autres répertoires que j'ai essayés, même avec des autorisations définies de telle sorte que l'utilisateur mysql devrait pouvoir écrire dans le répertoire.
Il s'agit de MySQL 5.0.75 fonctionnant sur Ubuntu.