Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

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 节。例如

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

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

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