Selon la documentation MySQL sur SELECT ... INTO OUTFILE
Tout fichier créé par INTO OUTFILE ou INTO DUMPFILE est accessible en écriture par tous les utilisateurs sur le serveur hôte. La raison en est que le serveur MySQL ne peut pas créer un fichier appartenant à quelqu'un d'autre que l'utilisateur sous le compte duquel il s'exécute. (Vous ne devriez jamais exécuter mysqld en tant que root pour cela et d'autres raisons.) Le fichier doit donc être accessible en écriture par tout le monde afin que vous puissiez manipuler son contenu.
Vous devez sortir le SELECT INTO OUTFILE
à /var/lib/mysql comme suit
SELECT * FROM data INTO OUTFILE 'data.csv';
Bien sûr, vous devez vous assurer que vous disposez de l'autorisation FILE sur [email protected]
Il existe deux façons d'obtenir cette autorisation
MÉTHODE #1
GRANT FILE ON *.* TO 'gs'@'localhost';
MÉTHODE #2
UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
FLUSH PRIVILEGES;
MISE À JOUR 2012-05-01 07:09 EDT
Pour vous accorder le privilège FILE, procédez comme suit :
service mysql restart --skip-networking --skip-grant-tables
mysql <hit enter>
UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
exit
service mysql restart