0

クエリ結果を MySQL ( ) からファイルに出力しようとしていますSELECT blah INTO OUTFILE 'filename'が、次のエラー メッセージが表示されます。

ERROR 1045 (28000): Access denied for user 'mysql_username'@'localhost' (using password: YES)

画面上の情報を選択するだけで問題なく動作します。エラーが発生する部分を追加しINTO OUTFILEています。

最初は、このコマンドの権限がないだけだと考えました (この特定のデータベースに対して mySQL で完全な作成/削除権限を持っていますが、サーバーのルート アクセス権限はありません)。ユーザー名とパスワードがサーバーに正しく渡されない場合。サーバー上の MySQL コンソールからこれを実行しているので、そうではないと思いますが、MySQL ユーザー名はサーバー ログインと同じではありません。それが問題でしょうか?

これは自分で処理できるものですか、それとも (MySQL および/またはサーバー上で) より多くの権利を持つ誰かにチェーンをキックする必要がありますか?

背景: テーブル内の 1000 以上のエントリの約 1/4 と、各エントリに関連付けられているファイルを削除する必要があります。残念ながら、すべてのファイルは同じフォルダーにあり、ファイル名としてハッシュを使用しているため、範囲を使用してテーブルから必要な行を簡単に取得できますが、ファイルでは機能しません。シェル スクリプトを使用して関連ファイルを削除できるように、不要な行を削除する前にテーブルからファイル名を取得したいと考えています。

4

2 に答える 2

1

ユーザー アカウントにはFILE特権が必要です。

于 2012-09-07T18:23:17.657 に答える
1

マニュアルによるとFILE、サーバー ホストへの権限とアクセス権が必要です。

SELECT ... INTO OUTFILE'file_name' 形式は、選択した行をファイルに書き込みSELECTます。FILEファイルはサーバー ホスト上に作成されるため、この構文を使用する権限が必要です。

于 2012-09-07T18:23:59.247 に答える