4

次のクエリを使用して、mysql からデータの csv エクスポートを作成しようとしています。

SELECT * INTO OUTFILE '/tmp/result.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
FROM getfreepellets WHERE 1

そして、次のエラーが表示されます。

#1045 - Access denied for user '[username]'@'localhost' (using password: YES)

(ユーザー名を削除しましたが、正しいものです)

サーバー上にファイルを作成するために、このユーザーにアクセスを許可するにはどうすればよいですか?

編集:

最初の行を正確なホーム パスに変更したところ、同じエラーが発生しました。

4

1 に答える 1

6

GRANTユーザーに次のFILE特権を与えることができます。

この特権により、 andステートメントと関数FILEを使用して、サーバー ホスト上のファイルを読み書きする権限が与えられます。LOAD DATA INFILESELECT ... INTO OUTFILELOAD_FILE()

特権を持つユーザーは、FILE誰でも読み取り可能な、または MySQL サーバーによって読み取り可能な、サーバー ホスト上の任意のファイルを読み取ることができます。(これは、サーバーがこれらのファイルにアクセスできるため、ユーザーが任意のデータベース ディレクトリ内の任意のファイルを読み取ることができることを意味します。) このFILE権限により、ユーザーは、MySQL サーバーが書き込みアクセス権を持つ任意のディレクトリに新しいファイルを作成することもできます。セキュリティ対策として、サーバーは既存のファイルを上書きしません。

FILE権限を付与するには、root としてログインして以下を実行します。

GRANT FILE ON *.* TO 'your_user'@'localhost';
于 2010-08-07T18:18:37.003 に答える