连接服务文件允许 libpq 连接参数与单个服务名称关联。然后可以使用 libpq 连接字符串中的 service
关键字指定该服务名称,并使用关联的设置。这允许在不重新编译使用 libpq 的应用程序的情况下修改连接参数。服务名称也可以通过 PGSERVICE
环境变量指定。
服务名称可以在每个用户的服务文件或系统范围的文件中定义。如果同一个服务名称同时存在于用户文件和系统文件,则用户文件优先。默认情况下,每个用户的服务文件名为 ~/.pg_service.conf
。在 Microsoft Windows 上,它名为 %APPDATA%\postgresql\.pg_service.conf
(其中 %APPDATA%
指用户配置文件中的 Application Data 子目录)。可以通过设置环境变量 PGserviceFILE
来指定不同的文件名。系统范围的文件名为 pg_service.conf
。默认情况下,它在 PostgreSQL 安装的 etc
目录中搜索(使用 pg_config --sysconfdir
精确识别此目录)。可以通过设置环境变量 PGSYSCONFDIR
来指定另一个目录,而不是不同的文件名。
任一服务文件都使用““INI 文件””格式,其中部分名称是服务名称,参数是连接参数;有关列表,请参阅 第 32.1.2 节。例如:
# comment [mydb] host=somehost port=5433 user=admin
PostgreSQL 安装中的 share/pg_service.conf.sample
文件提供了一个示例。
从服务文件中获得的连接参数会与其他来源获得的参数结合。服务文件设置会覆盖相应的环境变量,而服务文件本身又会被连接字符串中直接提供的值覆盖。例如,使用上述服务文件,连接字符串 service=mydb port=5434
将使用主机 somehost
、端口 5434
、用户 admin
,以及由环境变量或内置默认值设置的其他参数。
如果您在文档中发现任何不正确之处、与您对特定功能的实际体验不符之处,或需要进一步澄清之处,请使用 此表单 报告文档问题。