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

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

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 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 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4
历史版本PostgreSQL 7.4 已于 2010 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

27.10. 环境变量 #

下面的环境变量可用于选择默认的连接参数值;当调用代码没有直接指定值时, PQconnectdb、PQsetdbLogin 和 PQsetdb 将使用这些值。例如,它们有助于避免把数据库连接信息硬编码进简单的客户端应用。

  • PGHOST 设置数据库服务器名。如果以斜杠开头,则表示使用 Unix 域通信而非 TCP/IP 通信;该值是存放套接字文件的目录名(默认 /tmp)。

  • PGHOSTADDR 指定数据库服务器的数字 IP 地址。可以设置它来代替 PGHOST,以避免 DNS 查找开销。关于这些参数的相互作用,参见上面 PQconnectdb 下对这些参数的说明。

  • PGPORT 设置与 PostgreSQL 服务器通信所用的 TCP 端口号或 Unix 域套接字文件扩展名。

  • PGDATABASE 设置 PostgreSQL 数据库名。

  • PGUSER 设置连接数据库所用的用户名。

  • PGPASSWORD 设置当服务器要求密码认证时使用的密码。出于安全原因,此环境变量已废弃;请考虑改用 $HOME/.pgpass 文件(见 第 27.11 节)。

  • PGSERVICE 设置要在 pg_service.conf 中查找的服务名。这提供了一种设置全部参数的简写方式。

  • PGREALM 设置与 PostgreSQL 一起使用的 Kerberos realm(当它与本地 realm 不同时)。如果设置了 PGREALM,libpq 应用将尝试对该 realm 中的服务器进行认证,并使用单独的 ticket 文件以避免与本地 ticket 文件冲突。仅当服务器选择了 Kerberos 认证时才会使用此环境变量。

  • PGOPTIONS 设置 PostgreSQL 服务器的附加运行时选项。

  • PGSSLMODE 决定是否以及以何种优先级与服务器协商 SSL 连接。共有四种模式:disable 只尝试非加密的 SSL 连接;allow 协商时先尝试非 SSL 连接,失败后再尝试 SSL 连接;prefer(默认值)协商时先尝试 SSL 连接,失败后再尝试常规的非 SSL 连接;require 只尝试 SSL 连接。如果 PostgreSQL 编译时未包含 SSL 支持,使用选项 require 将导致错误,选项 allow 和 prefer 可以被接受,但 libpq 无法协商建立 SSL 连接。

  • PGREQUIRESSL 设置是否必须通过 SSL 建立连接。若设为 “1”,当服务器不接受 SSL 连接时,libpq 将拒绝连接(等价于 sslmode prefer)。此选项已废弃,由 sslmode 设置取代;仅当 PostgreSQL 编译时包含 SSL 支持时才可用。

  • PGCONNECT_TIMEOUT 设置 libpq 尝试连接 PostgreSQL 服务器时等待的最大秒数。若未设置或设为零,libpq 将无限等待。不建议将超时设为小于 2 秒。

下面的环境变量可用于为每个 PostgreSQL 会话指定默认行为。(关于按用户或按数据库设置默认行为的方法,另见 ALTER USER 和 ALTER DATABASE 命令。)

  • PGDATESTYLE 设置日期/时间表示的默认风格。(等价于 SET datestyle TO ...。)

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

  • PGCLIENTENCODING 设置默认的客户端字符集编码。(等价于 SET client_encoding TO ...。)

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

关于这些环境变量的正确取值,请参阅 SQL 命令 SET。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。