Secondo la documentazione MySQL su SELECT ... INTO OUTFILE
Qualsiasi file creato da INTO OUTFILE o INTO DUMPFILE è scrivibile da tutti gli utenti sull'host del server. La ragione di ciò è che il server MySQL non può creare un file di proprietà di chiunque non sia l'utente con il cui account è in esecuzione. (Non dovresti mai eseguire mysqld come root per questo e per altri motivi.) Il file quindi deve essere scrivibile da tutti in modo che tu possa manipolarne il contenuto.
Dovresti emettere SELECT INTO OUTFILE
a /var/lib/mysql come segue
SELECT * FROM data INTO OUTFILE 'data.csv';
Ovviamente, devi assicurarti di avere il permesso FILE su [email protected]
Ci sono due modi per ottenere questa autorizzazione
METODO N. 1
GRANT FILE ON *.* TO 'gs'@'localhost';
METODO N. 2
UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
FLUSH PRIVILEGES;
AGGIORNAMENTO 01-05-2012 07:09 EDT
Per concederti il privilegio FILE, procedi come segue:
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