2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: devel
不支持的版本: 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 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

32.15. 环境变量 #

以下环境变量可用于选择默认连接参数值,这些值将由 PQconnectdbPQsetdbLoginPQsetdb 使用,前提是调用代码未直接指定值。例如,这对于避免将数据库连接信息硬编码到简单的客户端应用程序中非常有用。

  • PGHOST 的行为与 host 连接参数相同。

  • PGSSLNEGOTIATION 的行为与 sslnegotiation 连接参数相同。

  • PGHOSTADDR 的行为与 hostaddr 连接参数相同。可以设置此变量来代替或与 PGHOST 一起设置,以避免 DNS 查询开销。

  • PGPORT 的行为与 port 连接参数相同。

  • PGDATABASE 的行为与 dbname 连接参数相同。

  • PGUSER 的行为与 user 连接参数相同。

  • PGPASSWORD 的行为与 password 连接参数相同。出于安全原因,不建议使用此环境变量,因为某些操作系统允许非 root 用户通过 ps 查看进程环境变量;请考虑使用密码文件(参见 第 32.16 节)。

  • PGPASSFILE 的行为与 passfile 连接参数相同。

  • PGREQUIREAUTH 的行为与 require_auth 连接参数相同。

  • PGCHANNELBINDING 的行为与 channel_binding 连接参数相同。

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

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

  • PGOPTIONS 的行为与 options 连接参数相同。

  • PGAPPNAME 的行为与 application_name 连接参数相同。

  • PGSSLMODE 的行为与 sslmode 连接参数相同。

  • PGREQUIRESSL 的行为与 requiressl 连接参数相同。此环境变量已弃用,改用 PGSSLMODE 变量;同时设置这两个变量将抑制此变量的效果。

  • PGSSLCOMPRESSION 的行为与 sslcompression 连接参数相同。

  • PGSSLCERT 的行为与 sslcert 连接参数相同。

  • PGSSLKEY 的行为与 sslkey 连接参数相同。

  • PGSSLCERTMODE 的行为与 sslcertmode 连接参数相同。

  • PGSSLROOTCERT 的行为与 sslrootcert 连接参数相同。

  • PGSSLCRL 的行为与 sslcrl 连接参数相同。

  • PGSSLCRLDIR 的行为与 sslcrldir 连接参数相同。

  • PGSSLSNI 的行为与 sslsni 连接参数相同。

  • PGREQUIREPEER 的行为与 requirepeer 连接参数相同。

  • PGSSLMINPROTOCOLVERSION 的行为与 ssl_min_protocol_version 连接参数相同。

  • PGSSLMAXPROTOCOLVERSION 的行为与 ssl_max_protocol_version 连接参数相同。

  • PGGSSENCMODE 的行为与 gssencmode 连接参数相同。

  • PGKRBSRVNAME 的行为与 krbsrvname 连接参数相同。

  • PGGSSLIB 的行为与 gsslib 连接参数相同。

  • PGGSSDELEGATION 的行为与 gssdelegation 连接参数相同。

  • PGCONNECT_TIMEOUT 的行为与 connect_timeout 连接参数相同。

  • PGCLIENTENCODING 的行为与 client_encoding 连接参数相同。

  • PGTARGETSESSIONATTRS 的行为与 target_session_attrs 连接参数相同。

  • PGLOADBALANCEHOSTS 的行为与 load_balance_hosts 连接参数相同。

  • PGMINPROTOCOLVERSION 的行为与 min_protocol_version 连接参数相同。

  • PGMAXPROTOCOLVERSION 的行为与 max_protocol_version 连接参数相同。

以下环境变量可用于指定每个 PostgreSQL 会话的默认行为。(另请参阅 ALTER ROLEALTER DATABASE 命令,了解如何按用户或按数据库设置默认行为。)

  • PGDATESTYLE 设置日期/时间表示的默认样式。(等同于 SET datestyle TO ...。)

  • PGTZ 设置默认时区。(等同于 SET timezone TO ...。)

  • PGGEQO 设置遗传查询优化器的默认模式。(等同于 SET geqo TO ...。)

有关这些环境变量的正确值的信息,请参阅SQL命令 SET

libpq 的内部行为由以下环境变量确定;它们会覆盖编译时默认值。

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

  • PGLOCALEDIR 设置包含消息本地化 locale 文件的目录。

提交更正

如果您在文档中发现任何不正确之处、与您在使用特定功能时的体验不符之处,或需要进一步说明之处,请使用 此表单 报告文档问题。