我在 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/,也没有任何效果。
有任何想法吗?