# 34.17.连接服务文件

连接服务文件允许libpq连接参数与单个服务名称相关联。然后可以在libpq连接字符串中指定该服务名称,并使用相关设置。这允许修改连接参数,而无需使用应用程序重新编译libpq。还可以使用PGSERVICE环境变量。

服务名称可以在每个用户的服务文件或系统范围的文件中定义。如果用户和系统文件中都存在相同的服务名称,则以用户文件为准。默认情况下,每用户服务文件位于~/.PGU服务。形态; 这可以通过设置环境变量来覆盖PGSERVICEFILE。系统范围的文件名为PGU服务。形态.默认情况下,在PostgreSQL安装目录(使用pg_config--sysconfdir以准确识别此目录)。通过设置环境变量,可以指定另一个目录,但不能指定不同的文件名PGSYSCONFDIR.

任一服务文件都使用“INI 文件”格式,其中节名是服务名,参数是连接参数;看第 34.1.2 节列表。例如:

# comment
[mydb]
host=somehost
port=5433
user=admin

PostgreSQL 安装中提供了一个示例文件,位于分享/pg_service.conf.sample.

从服务文件获得的连接参数与从其他来源获得的参数组合。服务文件设置会覆盖相应的环境变量,进而可以被连接字符串中直接给出的值覆盖。例如,使用上面的服务文件,一个连接字符串服务=mydb 端口=5434将使用主机某个主机, 港口5434, 用户行政,以及由环境变量或内置默认值设置的其他参数。