Podle dokumentace MySQL na SELECT ... INTO OUTFILE
Jakýkoli soubor vytvořený pomocí INTO OUTFILE nebo INTO DUMPFILE je zapisovatelný všemi uživateli na hostitelském serveru. Důvodem je, že server MySQL nemůže vytvořit soubor, který vlastní kdokoli jiný než uživatel, pod jehož účtem je spuštěn. (Z těchto a dalších důvodů byste nikdy neměli spouštět mysqld jako root.) Soubor tedy musí být celosvětově zapisovatelný, abyste mohli manipulovat s jeho obsahem.
Měli byste vypsat SELECT INTO OUTFILE
do /var/lib/mysql následovně
SELECT * FROM data INTO OUTFILE 'data.csv';
Samozřejmě se musíte ujistit, že máte oprávnění FILE na [email protected]
Existují dva způsoby, jak získat toto oprávnění
METODA #1
GRANT FILE ON *.* TO 'gs'@'localhost';
METODA #2
UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
FLUSH PRIVILEGES;
AKTUALIZACE 2012-05-01 07:09 EDT
Chcete-li si udělit oprávnění FILE, proveďte následující:
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