↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 连接参数 / 连接目标

service

用于额外参数的服务名称。它指定了 pg_service.conf 中保存额外连接参数的服务名称。这允许应用程序只指定一个服务名称,以便可以集中维护连接参数。参见 第 32.17 节 。

当前查看 PostgreSQL 18.6。

说明

用于额外参数的服务名称。它指定了 pg_service.conf 中保存额外连接参数的服务名称。这允许应用程序只指定一个服务名称,以便可以集中维护连接参数。参见 第 32.17 节 。

客户端库
libpq 18.6
手册定义
手册已记载
源码中的环境变量回退
PGSERVICE
编译时回退表达式
NULL

用法

service

默认值解析与服务文件优先级

以下环境变量可用于选择连接参数的默认值,供 PQconnectdb 、 PQsetdbLogin 和 PQsetdb 在调用代码未直接指定参数值时使用。例如,这样可以避免在简单的客户端应用程序中硬编码数据库连接信息。

服务名称可以在每个用户的服务文件或系统范围的文件中定义。如果同一个服务名称存在于用户文件和系统文件中,则用户文件优先。默认情况下,每个用户的服务文件名为 ~/.pg_service.conf 。在Microsoft Windows上,它的名称为 %APPDATA%\postgresql\.pg_service.conf (其中 %APPDATA% 指用户配置文件夹中的应用数据子目录)。可以通过设置环境变量 PGSERVICEFILE 来指定不同的文件名。系统范围的文件名为 pg_service.conf 。默认情况下,在 PostgreSQL 安装的 etc 目录中寻找(使用 pg_config --sysconfdir 来准确识别此目录)。可以通过设置环境变量 PGSYSCONFDIR 来指定另一个目录,但不能指定不同的文件名。

从服务文件中获取的连接参数会与其他来源的参数合并。服务文件中的设置会覆盖相应的环境变量,而连接字符串中直接给出的值又会覆盖服务文件中的设置。例如,使用上述服务文件时,连接字符串 service=mydb port=5434 将使用主机 somehost 、端口 5434 、用户 admin ,以及由环境变量或内置默认值设置的其他参数。

环境变量证据

PGSERVICE 的行为与 service 连接参数相同。

源码声明说明

Kerberos 和 GSSAPI 认证支持指定服务名。

服务文件控制

PGSERVICE 的行为与 service 连接参数相同。

PGSERVICEFILE 指定每个用户的连接服务文件的名称(参见 第 32.17 节 )。默认为 ~/.pg_service.conf ,或者在 Microsoft Windows 上为 %APPDATA%\postgresql\.pg_service.conf 。

PGSYSCONFDIR 设置包含 pg_service.conf 文件以及未来版本中可能出现的其他系统范围配置文件的目录。

环境变量回退

变量手册记载的行为
PGSERVICEPGSERVICE 的行为与 service 连接参数相同。

手册定义

service

用于额外参数的服务名称。它指定了pg_service.conf中保存额外连接参数的服务名称。这允许应用程序只指定一个服务名称,以便可以集中维护连接参数。参见第 32.17 节。

32.17. 连接服务文件

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

服务名称可以在每个用户的服务文件或系统范围的文件中定义。如果同一个服务名称存在于用户文件和系统文件中,则用户文件优先。默认情况下,每个用户的服务文件名为~/.pg_service.conf。在Microsoft Windows上,它的名称为%APPDATA%\postgresql\.pg_service.conf(其中%APPDATA%指用户配置文件夹中的应用数据子目录)。可以通过设置环境变量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,以及由环境变量或内置默认值设置的其他参数。

相关条目

文档与源码

来源构建
版本
18.6
构建
https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
来源指纹
ee8d1a3612338fd9adf250730cb640fcc5233b5491337cc00a316a44e3a0b9f8

版本比较

PostgreSQL 17 → 18: 无变化。

比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。

相关条目

导出 JSON · 返回连接参数 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。