↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1

32.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 文件”格式,其中配置段名称是服务名称,参数是连接参数;参数列表见第 32.1.2 节。例如:

# 注释
[mydb]
host=somehost
port=5433
user=admin

PostgreSQL 安装目录中的 share/pg_service.conf.sample 提供了一个示例文件。

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

报告文档问题

阅读 上游文档. 通过 PostgreSQL 文档反馈表单.