SELECT ... INTO OUTFILE に関する MySQL ドキュメントによると
<ブロック引用>INTO OUTFILE または INTO DUMPFILE によって作成されたファイルは、サーバー ホスト上のすべてのユーザーが書き込み可能です。これは、MySQL サーバーが、それを実行しているアカウントのユーザー以外が所有するファイルを作成できないためです。 (この理由やその他の理由から、root として mysqld を実行しないでください。)したがって、ファイルは、その内容を操作できるように、誰でも書き込み可能である必要があります。
SELECT INTO OUTFILE
を出力する必要があります /var/lib/mysql に次のように
SELECT * FROM data INTO OUTFILE 'data.csv';
もちろん、[email protected] に対する FILE パーミッションがあることを確認する必要があります
この許可を与える方法は 2 つあります
方法 #1
GRANT FILE ON *.* TO 'gs'@'localhost';
方法 #2
UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
FLUSH PRIVILEGES;
更新 2012-05-01 07:09 EDT
自分自身に FILE 権限を付与するには、次の手順を実行します:
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