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

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 8.1 已于 2010 年 11 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

28.11. 环境变量 #

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

  • PGHOST设置数据库服务器名。如果它以斜线开头,则指定使用 Unix 域通信而不是 TCP/IP 通信;该值是存放套接字文件的目录名(在默认安装配置中它是/tmp)。

  • PGHOSTADDR指定数据库服务器的数字 IP 地址。这可以替代或者与PGHOST一起设置,以避免 DNS 查找开销。关于这两个参数的相互作用,见上文PQconnectdb下对这些参数的文档。

    当PGHOST和PGHOSTADDR都未设置时,默认行为是使用本地 Unix 域套接字连接;在没有 Unix 域套接字的机器上,libpq将尝试连接到localhost。

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

  • PGDATABASE设置PostgreSQL数据库名。

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

  • PGPASSWORD设置当服务器要求密码认证时所使用的密码。出于安全原因,不建议使用这个环境变量(某些操作系统允许非 root 用户通过ps查看进程环境变量);可以考虑改用~/.pgpass文件(见第 28.12 节)。

  • PGPASSFILE指定用于查找的密码文件名。如果未设置,默认为~/.pgpass(见第 28.12 节)。

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

  • PGREALM设置与PostgreSQL一起使用的 Kerberos realm(如果它与本地 realm 不同)。如果设置了PGREALM,libpq应用将尝试与该 realm 的服务器进行认证,并使用单独的票据文件以避免与本地票据文件冲突。只有当服务器选择了 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 支持的情况下才可用。

  • PGKRBSRVNAME设置使用 Kerberos 5 或 GSSAPI 认证时所用的 Kerberos 服务名。

  • 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。

下列环境变量决定libpq的内部行为;它们会覆盖编译在程序中的默认值。

  • PGSYSCONFDIR设置包含pg_service.conf文件的目录。

  • PGLOCALEDIR设置包含用于消息国际化的locale文件的目录。

提交更正

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