我正在尝试读取位于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
用户的所有权归到该文件夹。
我做错了什么?
答案 0 :(得分:2)
之前我遇到过这个问题,而不是一直争取权限,我只是从STDIN导入。
这可以实现你想要的(虽然不是你想要的方式),但我认为它不那么麻烦且容易出错。尝试:
cat /pgsrc/IP2LOCATION-LITE-DB9.CSV | psql -c "COPY ip2location_db1 FROM STDIN (FORMAT CSV);"
这确实意味着您从shell脚本或其他东西运行查询,但是为了以另一种方式实现它,您必须将权限更改与shell脚本或其他内容合并。 / p>
(另外,根据the docs,默认报价是双引号,因此您不需要指定报价。)