Laut MySQL-Dokumentation zu SELECT ... INTO OUTFILE
Jede Datei, die von INTO OUTFILE oder INTO DUMPFILE erstellt wurde, kann von allen Benutzern auf dem Serverhost geschrieben werden. Der Grund dafür ist, dass der MySQL-Server keine Datei erstellen kann, die jemand anderem als dem Benutzer gehört, unter dessen Konto er läuft. (Aus diesem und anderen Gründen sollten Sie mysqld niemals als root ausführen.) Die Datei muss daher global beschreibbar sein, damit Sie ihren Inhalt manipulieren können.
Sie sollten den SELECT INTO OUTFILE
ausgeben zu /var/lib/mysql wie folgt
SELECT * FROM data INTO OUTFILE 'data.csv';
Natürlich müssen Sie sicherstellen, dass Sie die DATEI-Berechtigung für [email protected]
habenEs gibt zwei Möglichkeiten, diese Erlaubnis zu erteilen
METHODE #1
GRANT FILE ON *.* TO 'gs'@'localhost';
METHODE #2
UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
FLUSH PRIVILEGES;
UPDATE 2012-05-01 07:09 EDT
Gehen Sie wie folgt vor, um sich selbst DATEI-Berechtigung zu erteilen:
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