2012-02-13 13 views
3

Windows 7,32ビットマシンでEnterpriseDB pgAdmin III(v。1.12.1)を使用して、リモートLinuxサーバ上のPostgreSQLデータベースを操作しています。私は$ PGDATAディレクトリにアクセスできます(この例では、/ var/lib/pgsql/data /にあります)PostgreSQL - 一貫性のないCOPYパーミッションエラー

私はユーザーのpostgresとしてログインしています。ターミナルでpsqlを実行し、\copyコマンドを使用してcsvファイルから新しく作成したテーブルにデータをインポートすると、問題はありません。

私はpgAdminにいますが、COPYコマンドを使用して、csvファイルから新しく作成したテーブルにデータをインポートします。

COPY table_name FROM '/var/lib/pgsql/data/file.csv' 
WITH DELIMITER AS ',' csv header 

時には、これは罰金、他の回は、私は権限エラーが発生します動作します:

ERROR: could not open file '/var/lib/pgsql/data/file.csv" for reading: Permission denied SQL state: 42501

それは私に混乱してエラーの矛盾です。エラーが発生すると、ファイルのパーミッションを644 - 777のどこかに変更します。また、ファイルを別のフォルダ(var/tmp /など)に移動しても、何の効果もありません。

アイデア?

+0

権限が777に変更され、ユーザーがpostgresに変更されましたが、\ optionでも試しましたが、ファイルには何も書き込めません。 –

答えて

0

あなたのpostgresユーザーはあなたのファイルにまだアクセスしていないと思います。

folowingコマンドを試しましたか?問題は、アクセス許可が谷である/var/lib/pgsql/data/file.csv

chmodのU + R /var/lib/pgsql/data/file.csv

5

のchownのPostgresディレクトリをファイルに追加します。たとえば、Postgresユーザーはホームフォルダにアクセスできません。答えは、すべてのユーザーが/ tmpのようなアクセス権を持つフォルダを使用するか、または適切なアクセス権を持つフォルダを作成して、すべてのユーザーがアクセスできるようにすることです。

+0

これは主題に関する最良の回答です。私の問題を解決しました。 – Digao

0
Try \COPY table_name FROM '/var/lib/pgsql/data/file.csv' 
WITH DELIMITER AS ',' csv header 

お知らせコピーの前にバックスラッシュ、あなたが戻ってそれを実行することが賢明権限他ののユーザーで実行スラッシュそれだけでドキュメントにはPG の最近のバージョンのを推奨されていませんポストマスターとして実行:|、とにかくこれはたぶんyaのためのトリックを行う可能性があります。

+0

それは動作していませんvarun –

+0

何か便利なものに答えるためには、C:\ Users \ Public \ Documents – varun

関連する問題