1

Mac コマンドラインでは、

$ sql -u foo -pbar db -B -e "SELECT * FROM t" > output.txt

コマンドをインラインで入力する必要があります。

ファイル foo.sql で SQL ステートメントを実行し、結果をタブ区切り形式で別のファイルにエクスポートする方法は?

編集

私がする時

mysql -h localhost -u foo -pbar db -B -e "SELECT * FROM t WHERE x='{}' LIMIT 2 INTO OUTFILE '../o.tsv';"

エラーが発生しました

ERROR 1045 (28000) at line 1: Access denied for user 'foo'@'localhost' (using password: YES)

しかし不思議なことに、

mysql -h localhost -u foo -pbar db

mysql コマンド プロンプトが正常に表示されます。利用には特別な権限OUTFILEが必要ですか?foo

mysql> SELECT * FROM user WHERE User='foo'\G
*************************** 1. row ***************************
                 Host: localhost
                 User: foo
             Password: *A5DB2D927D6DF94DA5E1CE4B2AEAAB4D8304EA
          Select_priv: N
          Insert_priv: N
          Update_priv: N
          Delete_priv: N
          Create_priv: N
            Drop_priv: N
          Reload_priv: N
        Shutdown_priv: N
         Process_priv: N
            File_priv: N
           Grant_priv: N
      References_priv: N
           Index_priv: N
           Alter_priv: N
         Show_db_priv: N
           Super_priv: N
Create_tmp_table_priv: N
     Lock_tables_priv: N
         Execute_priv: N
      Repl_slave_priv: N
     Repl_client_priv: N
     Create_view_priv: N
       Show_view_priv: N
  Create_routine_priv: N
   Alter_routine_priv: N
     Create_user_priv: N
             ssl_type: 
           ssl_cipher: 
          x509_issuer: 
         x509_subject: 
        max_questions: 0
          max_updates: 0
      max_connections: 0
 max_user_connections: 0
1 row in set (0.01 sec)
4

3 に答える 3

0

File_privtrueに設定すると動作します。

于 2012-07-31T19:18:58.387 に答える
0

行う:

sql -u foo -pbar db -B -e `cat foo.sql` > output.txt

仕事?

于 2012-07-31T18:51:17.250 に答える
-1

を使用しSELECT [text of query] INTO OUTFILE [filename]ます。これがドキュメントです。フォーマットが希望どおりでない場合は、ファイル名の後に指定できるフォーマット コマンドについて、 load data infile構文を参照してください。

于 2012-07-31T18:45:27.473 に答える