Postgresql 在osx Mavericks上使用COPY或\COPY将csv批量数据加载到postgres中不起作用

Postgresql 在osx Mavericks上使用COPY或\COPY将csv批量数据加载到postgres中不起作用,postgresql,csv,psql,Postgresql,Csv,Psql,我只是尝试用这种方式进行批量数据加载,我发现了一些问题。我刚刚在我的osx系统中创建了一个用户tom/mypass,然后我刚刚创建了用户和数据库,然后创建了表: MacBook-Pro-Retina-de-Alonso:~ aironman$ psql template1 psql (9.3.5) Type "help" for help. template1=# CREATE USER tom WITH PASSWORD 'mypass'; CREATE ROLE template1=# C

我只是尝试用这种方式进行批量数据加载,我发现了一些问题。我刚刚在我的osx系统中创建了一个用户tom/mypass,然后我刚刚创建了用户和数据库,然后创建了表:

MacBook-Pro-Retina-de-Alonso:~ aironman$ psql template1
psql (9.3.5)
Type "help" for help.

template1=# CREATE USER tom WITH PASSWORD 'mypass';
CREATE ROLE
template1=# CREATE DATABASE "TrialDB";
CREATE DATABASE
template1=# GRANT ALL PRIVILEGES ON DATABASE "TrialDB" to tom;
GRANT

TrialDB=> CREATE TABLE core2door_element
TrialDB-> (
TrialDB(>   id serial NOT NULL,
TrialDB(>   key character varying(255) NOT NULL,
TrialDB(>   type character varying(255) NOT NULL,
TrialDB(>   label character varying(255) NOT NULL,
TrialDB(>   longitude double precision NOT NULL,
TrialDB(>   latitude double precision NOT NULL,
TrialDB(>   parent_id integer,
TrialDB(>   CONSTRAINT core2door_element_pkey PRIMARY KEY (id),
TrialDB(>   CONSTRAINT core2door_element_parent_id_fkey FOREIGN KEY (parent_id)
TrialDB(>       REFERENCES core2door_element (id) MATCH SIMPLE
TrialDB(>       ON UPDATE NO ACTION ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED
TrialDB(> )
TrialDB-> WITH (
TrialDB(>   OIDS=FALSE
TrialDB(> );
CREATE TABLE
TrialDB=> ALTER TABLE core2door_element OWNER TO tom;
ALTER TABLE
现在,如果我尝试启动“复制”命令:

TrialDB=> COPY core2door(id,key,type,label,longitude,latitude,parent_id) FROM '/Users/aironman/Documents/tektroniks/fake_data_entity.csv' WITH DELIMITER ',' CSV HEADER;
ERROR:  must be superuser to COPY to or from a file
HINT:  Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.
复制不起作用,正在尝试\COPY:

TrialDB=> \copy core2door(id,key,type,label,longitude,latitude,parent_id) FROM '/Users/aironman/Documents/tektroniks/fake_data_entity.csv' WITH DELIMITER ',' CSV HEADER;
/Users/aironman/Documents/tektroniks/fake_data_entity.csv: Permission denied
许可也被拒绝了

如您所见,csv文件具有以下所有权限:

MacBook-Pro-Retina-de-Alonso:tektroniks aironman$ ls -l fake_data_entity.csv 
-rwxrwxrwx+ 1 aironman staff 351 sep 15 09:53 fake_data_entity.csv
我做错了什么


如果这是一个已经回答的问题,我深表歉意,但在本网站内搜索时,每个问题都已经用我的方法从理论上解决了,但不幸的是,它不起作用。

Joop提供的解决方案是正确的。抱歉耽搁了


您不仅需要对该文件进行读取访问,还需要至少对指向该文件的路径中的目录进行x访问。主目录通常没有设置x位是有充分理由的。最简单的方法是将文件复制或移动到/tmp/并从那里读取。

您不仅需要对文件进行读取访问,还需要对指向该文件的路径中的目录进行至少x次访问。主目录通常没有设置x位是有充分理由的。最简单的方法是将文件复制或移动到/tmp/并从那里读取。谢谢您,先生,我将文件移动到我的/tmp dir,它可以工作!