1

このコマンドをローカル ホストで root ユーザーとして使用すると、問題なく実行されますが、実際のファイルが見つからないようです。

SELECT * INTO OUTFILE 'C:\...\tableName.txt' 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
FROM tableName;

クエリを再度実行しようとすると、明らかにそうでない場合でも、ファイルは既に作成されていると表示されます。

編集:クエリ構文を修正しました

4

2 に答える 2

1

FROMの後に不要なものがあります*。クエリは次のようになります。

SELECT * INTO OUTFILE 'C:\...\tableName.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\r\n'
FROM tableName;

注: mysql に書き込み権限があることを確認してください。'C:\...\tableName.txt'

ファイルが既に作成されているエラーについては:

ファイルは、データ ディレクトリなど、mysql が実際に書き込み権限を持っている別のディレクトリに作成されている可能性があります。これが、クエリを複数回実行したために、ファイルが既に作成されているというメッセージが表示される理由です。

mysql コマンド ライン run からshow variables like '%dirdata%';、次のような出力が表示されます。

mysql> show variables like '%datadir%';
+---------------+-------------------------------------+
| Variable_name | Value                               |
+---------------+-------------------------------------+
| datadir       | c:\wamp\bin\mysql\mysql5.6.17\data\ |
+---------------+-------------------------------------+
1 row in set (0.35 sec)

ウィンドウでそのフォルダーに移動すると、そこにファイルが見つかるはずです。

于 2015-07-20T23:41:52.987 に答える
1
SELECT r INTO OUTFILE 'c:\dev\myA2.txt'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM a2;

-- leads me to believe it works first time with rowcount output
-- but it does not put file in dev
-- run it again it says error 1086: File 'c:devmyA2.txt' already exists

so that means it wrote it to c:

the default of what mysql query engine has for c: at that time

I did not hunt for it !

the following works great (note the double slashes \\):

SELECT r INTO OUTFILE 'c:\\dev\\drew_so_answers\\myA2.txt'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM a2;
于 2015-07-21T00:53:23.990 に答える