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

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

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

hostaddr

要连接的主机的数字 IP 地址。这应该是标准的 IPv4 地址格式,例如, 172.28.40.9 。如果您的机器支持 IPv6,也可以使用这些地址。当为此参数指定非空字符串时,总是使用 TCP/IP 通信。如果未指定此参数,则会根据 host 的值查找相应的 IP 地址 — 或者,如果 host 指定了 IP 地址,则将直接使用该值。 使用 hostaddr 允许应用程序避免主机名查找,这在有时间限制的应用程序中可能很重要。但是,对于 GSSAPI 或 SSPI 认证方法以及 verify-…

当前查看 PostgreSQL 18。

中文定义与说明

连接参数 hostaddr。

同版本中文手册定义

要连接的主机的数字 IP 地址。这应该是标准的 IPv4 地址格式,例如,172.28.40.9。如果您的机器支持 IPv6,也可以使用这些地址。当为此参数指定非空字符串时,总是使用 TCP/IP 通信。如果未指定此参数,则会根据 host 的值查找相应的 IP 地址 — 或者,如果 host 指定了 IP 地址,则将直接使用该值。

使用 hostaddr 允许应用程序避免主机名查找,这在有时间限制的应用程序中可能很重要。但是,对于 GSSAPI 或 SSPI 认证方法以及 verify-full SSL 证书验证,需要主机名。使用以下规则:

  • 如果指定了 host 而没有指定 hostaddr,则会发生主机名查找。(当使用 PQconnectPoll 时,查找发生在 PQconnectPoll 首次考虑此主机名时,并且可能导致 PQconnectPoll 阻塞相当长的时间。)

  • 如果指定了 hostaddr 而没有指定 host,则 hostaddr 的值给出服务器的网络地址。如果认证方法需要主机名,则连接尝试将失败。

  • 如果同时指定了 host 和 hostaddr,则 hostaddr 的值给出服务器的网络地址。只有认证方法需要主机名时,才会将 host 的值用作主机名;否则忽略该值。

请注意,如果 host 不是网络地址 hostaddr 上服务器的名称,则认证可能会失败。此外,当同时指定 host 和 hostaddr 时,host 用于在密码文件中标识连接(请参阅第 32.16 节)。

也可以接受一个逗号分隔的 hostaddr 值列表,此时将按顺序尝试列表中的每个主机。列表中的空项会导致使用相应的主机名,如果主机名也为空,则使用默认主机名。详见第 32.1.1.3 节。

如果既没有主机名也没有主机地址,libpq 会使用本地 Unix 域套接字连接;在 Windows 上,则会尝试连接到 localhost。

查看完整中文手册与上下文。

说明

要连接的主机的数字 IP 地址。这应该是标准的 IPv4 地址格式,例如, 172.28.40.9 。如果您的机器支持 IPv6,也可以使用这些地址。当为此参数指定非空字符串时,总是使用 TCP/IP 通信。如果未指定此参数,则会根据 host 的值查找相应的 IP 地址 — 或者,如果 host 指定了 IP 地址,则将直接使用该值。 使用 hostaddr 允许应用程序避免主机名查找,这在有时间限制的应用程序中可能很重要。但是,对于 GSSAPI 或 SSPI 认证方法以及 verify-full SSL 证书验证,需要主机名。使用以下规则: 如果指定了 host 而没有指定 hostaddr ,则会发生主机名查找。(当使用 PQconnectPoll 时,查找发生在 PQconnectPoll 首次考虑此主机名时,并且可能导致 PQconnectPoll 阻塞相当长的时间。) 如果指定了 hostaddr 而没有指定 host ,则 hostaddr 的值给出服务器的网络地址。如果认证方法需要主机名,则连接尝试将失败。 如果同时指定了 host 和 hostaddr ,则 hostaddr 的值给出服务器的网络地址。只有认证方法需要主机名时,才会将 host 的值用作主机名;否则忽略该值。 请注意,如果 host 不是网络地址 hostaddr 上服务器的名称,则认证可能会失败。此外,当同时指定 host 和 hostaddr 时, host 用于在密码文件中标识连接(请参阅 第 32.16 节 )。 也可以接受一个逗号分隔的 hostaddr 值列表,此时将按顺序尝试列表中的每个主机。列表中的空项会导致使用相应的主机名,如果主机名也为空,则使用默认主机名。详见 第 32.1.1.3 节 。 如果既没有主机名也没有主机地址, libpq 会使用本地 Unix 域套接字连接;在 Windows 上,则会尝试连接到 localhost 。

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

用法

hostaddr

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

以下环境变量可用于选择连接参数的默认值,供 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 ,以及由环境变量或内置默认值设置的其他参数。

环境变量证据

PGHOSTADDR 的行为与 hostaddr 连接参数相同。这可以替代或者与 PGHOST 一起设置,以避免DNS查找开销。

环境变量回退

变量手册记载的行为
PGHOSTADDRPGHOSTADDR 的行为与 hostaddr 连接参数相同。这可以替代或者与 PGHOST 一起设置,以避免DNS查找开销。

相关条目

文档与源码

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

版本比较

PostgreSQL 17 → 18: 无变化。

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

相关条目

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