5

MySQLselectステートメントからSnowLeopardを実行しているMac上のファイルにデータを書き込もうとしています。

select date_base, fractile_v2, gics, count(gvkey_iid)
from master
where fractile_v2 <= 15 and
      fractile_v2  != 0
group by date_base, gics, fractile_v2
order by date_base, fractile_v2
limit 100000
INTO OUTFILE '/User/my-name/Desktop/gics_v2.csv'
FIELDS TERMINATED BY ',';

残念ながら、これにより次のエラーが発生します。

エラーコード:1。ファイル'/Users/andrew/Desktop/gics_v2.csv'を作成/書き込みできません(エラーコード:13)

これは権限の問題だと思います。

フルファイルパス'/User/my-name/Desktop/gics_v2.csv'を単純に置き換えるとgics_v2.csv、ステートメントが実行されているように見えます。しかし、ファイルがどこに保存されているのかわからず、見つけることができません。

誰か知っている?そして、誰かが私が最初の書き込みエラーを解決する方法を提案することもできますか?私はMySQLをrootユーザーとして実行しています。

4

4 に答える 4

4

mysqlユーザーにプライベートホームディレクトリへの書き込みを許可しようとしているため、これは権限の問題です。代わりに/usr/ local /に作成したフォルダーに書き込んでみてください。念のため、Macなので、アクセス許可をグローバルな読み取り/書き込みにすることができます。

Macでターミナルを開きます。

cd / usr / local

mkdir DbOutput

sudo chmod -R 777 DbOutput

次に、コードに戻りますが、パスを変更します。

date_base、fractile_v2、gics、count(gvkey_iid)を選択します

マスターから

ここで、fractile_v2<=15および

fractile_v2!= 0

date_base、gics、fractile_v2でグループ化

date_base、fractile_v2で並べ替え

制限100000

INTO OUTFILE'/usr/local/DbOutput/gics_v2.csv'

'、'で終了するフィールド;

于 2012-07-13T03:11:46.790 に答える
2

デフォルトでは、SELECT ... INTO OUTFILEは、データファイルが存在するディレクトリにファイルを配置します。だから何かのような/path/to/datadir/databasename/gics_v2.csv

クライアントではなくサーバーとしてファイルを書き込みます。したがって、ユーザーの権限ではなく、mysqldプロセス(通常はosxでは_mysql)を実行しているユーザーを使用します。

そのユーザーが書き込みを許可されているパスを指定するだけです。

于 2012-07-13T06:11:15.727 に答える
1

質問が古くなっていることは知っていますが、参考までに、私のMac OS X 10.10では、OUTPUTディレクトリは次のようになっています/usr/local/mysql-5.7.10-osx10.9-x86_64/data/databasename/***.csv

于 2016-06-12T06:24:20.857 に答える
0

Mac OS X Server 10.7.4を実行していますが、OUTFILEディレクトリは/var/mysql/databasename/

于 2013-03-07T14:14:00.870 に答える