登录
34.17. 连接服务文件#
连接服务文件允许将 libpq 连接参数与单个服务名称关联。然后可以在 libpq 连接字符串中指定该服务名称,并将使用关联的设置。这允许修改连接参数,而无需重新编译使用 libpq 的应用程序。还可以使用PGSERVICE
环境变量指定服务名称。
服务名称可以在按用户服务文件或系统范围文件定义。如果同一服务名称同时存在于用户文件和系统文件中,则用户文件优先。默认情况下,按用户服务文件名为~/.pg_service.conf
。在 Microsoft Windows 上,它名为%APPDATA%\postgresql\.pg_service.conf
(其中%APPDATA%
指用户配置文件中的应用程序数据子目录)。可以通过设置环境变量PGSERVICEFILE
指定不同的文件名。系统范围文件名为pg_service.conf
。默认情况下,它在PostgreSQL安装的etc
目录中(使用pg_config --sysconfdir
精确识别此目录)。可以通过设置环境变量PGSYSCONFDIR
指定另一个目录,但不能指定不同的文件名。
任一服务文件都使用“INI 文件”格式,其中部分名称是服务名称,参数是连接参数;有关列表,请参见第 34.1.2 节。例如
# comment
[mydb]
host=somehost
port=5433
user=admin
示例文件在PostgreSQL安装中的share/pg_service.conf.sample
中提供。
从服务文件中获取的连接参数与从其他来源获取的参数相结合。服务文件设置将覆盖相应的环境变量,而环境变量又可以被直接在连接字符串中给出的值覆盖。例如,使用上述服务文件,连接字符串service=mydb port=5434
将使用主机somehost
、端口5434
、用户admin
以及由环境变量或内置默认值设置的其他参数。