我的pg_service.conf文件包含以下配置
[test-service]
host=localhost
port=5432
user=test-user
password=*****
dbname=test-table
运行以下查询时显示错误
SELECT id, name
FROM
DBLINK('service=test-service',
'SELECT id, name FROM student'
) AS sq0(id int, name text) order by 1;
ERROR: could not establish connection
DETAIL: definition of service "test-service" not found
答案 0 :(得分:0)
您是否定义了PGSERVICEFILE
和PGSERVICE
环境变量?如果没有,请按如下所示在环境文件中定义它们,
export PGSERVICEFILE=${HOME}/.pg_service.conf # location to the .pg_service.conf file
export PGSERVICE=test-service
如果要使用多个架构,则可以使用.pg_service.conf
来定义数据库名称,ip和端口,并使用.pgpass
文件来定义用户名和密码。请不要将.pgpass
放在您的主文件夹中。同样,应该设置以上变量。
.pg_service.conf示例
[test-service]
host=localhost
port=5432
dbname=test-table
.pgpass示例
localhost:5432:test-table:test-user1:******
localhost:5432:test-table:test-user2:******
然后您可以通过psql --user=test-user1 -c "query"