Windows 7 の 32 ビット マシンで EnterpriseDB pgAdmin III (v. 1.12.1) を使用して、リモート Linux サーバー上の PostgreSQL データベースを操作しています。ユーザー postgres としてログインしているため、$PGDATA ディレクトリにアクセスできます (この例では、/var/lib/pgsql/data/ にあります)。
ターミナル経由でサーバーにログインし、psql を実行し、\copy
コマンドを使用して csv ファイルから新しく作成されたテーブルにデータをインポートすると、問題は発生しません。
ただし、pgAdmin を使用している場合は、COPY コマンドを使用して、csv ファイルから新しく作成されたテーブルにデータをインポートします。
COPY table_name FROM '/var/lib/pgsql/data/file.csv'
WITH DELIMITER AS ',' csv header
これでうまくいく場合もあれば、権限エラーが発生する場合もあります。
エラー: ファイル '/var/lib/pgsql/data/file.csv" を読み取り用に開くことができませんでした: アクセス許可が拒否されました SQL 状態: 42501
私を混乱させているのは、エラーの矛盾です。エラーが発生したら、ファイルのアクセス許可を 644 ~ 777 のいずれかに変更しますが、効果はありません。また、ファイルを他のフォルダー (var/tmp/ など) に移動しようとしましたが、これも効果がありません。
何か案は?