Postgres无法打开CSV文件进行读取访问:权限被拒绝

时间:2016-02-11 10:38:12

标签: postgresql csv

我正在尝试读取位于postgres 8.4服务器文件系统上的CSV文件:

COPY ip2location_db1 FROM '/pgsrc/IP2LOCATION-LITE-DB9.CSV' WITH CSV QUOTE AS '"';

我收到错误:

Cannot open file for read access: Permission denied

该文件包含所有者postgres,我尝试将其放在/var/lib/pgsql以及/pgsources文件夹中,我已将postgres用户的所有权归到该文件夹​​。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

之前我遇到过这个问题,而不是一直争取权限,我只是从STDIN导入。

这可以实现你想要的(虽然不是你想要的方式),但我认为它不那么麻烦且容易出错。尝试:

cat /pgsrc/IP2LOCATION-LITE-DB9.CSV | psql -c "COPY ip2location_db1 FROM STDIN (FORMAT CSV);"

这确实意味着您从shell脚本或其他东西运行查询,但是为了以另一种方式实现它,您必须将权限更改与shell脚本或其他内容合并。 / p>

(另外,根据the docs,默认报价是双引号,因此您不需要指定报价。)