在Ubuntu中从CSV复制到Postgres

时间:2013-05-30 21:31:46

标签: ubuntu csv import postgresql-9.1

我的问题与此one类似,但在Linux Mint 15(Ubuntu)中。我已经尝试过标准COPY(我一直在Windows上使用):

COPY public.bio FROM 'tmp/sisinst_bio.csv' DELIMITERS '|' CSV;

我收到此错误:

ERROR: could not open file "/tmp/sisinst_bio.csv" for reading: Permission denied

数据库的所有者和用户是postgres

尝试

(1)创建一个与我的Ubuntu(zach)用户帐户相同的用户,并更改数据库的所有者。

(2)将csv移动到Ubuntu的各个部分

sudo cp -r /home/zach/Documents/Postgres91/sisinst_postgresql_bio_test.csv /usr/share/postgresql/9.1

sudo cp -r /home/zach/Documents/Postgres91/sisinst_postgresql_bio_test.csv /tmp

这很容易,但我被困住了。我不确定这是Postgresql还是Ubuntu问题。

更新

这与this有什么关系吗?

一如既往,谢谢所有

2 个答案:

答案 0 :(得分:2)

对于PermissionsCSV - > Right Click - > Properties)中的PermissionsOthers设置为None

要解决此问题以便Postgres用户可以使用它,我将Others更改为Read-only,这有效。

最终,Postgres中的Group用户可能会更好,但此时我的用户就更高了。

我愿意接受更好的答案。

答案 1 :(得分:0)

使用ls -l /tmp/sisinst_bio.csv查看文件的权限。您可能会看到-rw-------之类的内容,这意味着它可以被所有者读取和写入,但其他人无法读取。

如果是这种情况,请尝试使用以下方法制作CSV文件组并使用世界可读:

chmod g+r,o+r /tmp/sisinst_bio.csv