2016-07-13 27 views
0

私はSQLで非常に新しいですが、SQLファイルに格納されたテーブルのいくつかのフィールドを抽出する必要があります。MySQLが出力ファイルにエラーを出力

私はmysqlをインストールしてデータベースを作成し、そのファイルをソースしています。私は次のエラーメッセージを持つコマンドを実行すると

SELECT * INTO OUTFILE '/home/cr/database/Dump2/program_info.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' FROM program_info; 

:今私は、テーブルのすべてのeltsを読んで面白いフィールドを抽出して、CVSファイルにそれらを書き込むために、SQL要求を実行したかった

ERROR 1290(HY000):それは

この文を実行することはできませんので、MySQLサーバが--secure-FILE-privのオプションを指定して実行されている誰もがそれを解決する方法を知っていますか? 私はこのメッセージを午後すべて苦労しましたが、できませんでした。

私は、LinuxのUbuntuの上で働いていますし、私の設定ファイルが

[mysqldを] 読み取り専用= 0 セキュアファイルPRIV = ""

を/etc/my.cfgされます

あなたの助けをありがとう

+0

mysqldコマンドラインを確認してください。このディレクティブが.ini/.cnfファイルにないからといって、他の場所で指定することはできません。 –

+0

"mysqldを確認する"方法を教えてください。 BR – clam37

+0

'ps auxwww | grep mysqld' –

答えて

3

MySQLは実際に意図したとおりに動作しています。 MySQLサーバーは--secure-file-privオプションで起動し、基本的に出力をランダムなディレクトリに保存することを制限しています。起動パラメータを確認する必要があります。そうするには

、MySQLのシェルで次のコマンドを実行します。

SHOW VARIABLES LIKE 'secure_file_priv'; 

出力は、MySQLサーバが現在許可された場所であると考えて何だろう。この場所に出力を保存できるはずです。

制限を無効にするには、オプションを変更した後でMySQLサーバを再起動して、それを宣言する設定ファイルを編集する必要があります。

MySQLは、さまざまな場所からmy.ini(またはmy.cnf)構成ファイルを読み取っている可能性があります。詳細については、Using Option Filesを参照してください。

+0

私のファイルはsecure_file_privの場所に出力されていますが、そのディレクトリに2つのサブフォルダを置いて出力できますか?現在のところ、私には「許可が拒否されました」というメッセージが表示されますが、2つの異なるデータセットを2つの場所にエクスポートできる回避策があるかどうかはわかりませんが、最終的にはsecure_file_privディレクトリにあります。 – TheBestBigAl