34.14. 环境变量

以下环境变量可用于选择默认的连接参数值,如果调用代码未直接指定任何值,则将由PQconnectdbPQsetdbLoginPQsetdb使用。例如,它们对于避免将数据库连接信息硬编码到简单的 Client 端应用程序中很有用。

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

  • PGHOSTADDR的行为与hostaddr连接参数相同。可以设置它代替PGHOST或作为PGHOST的补充,以避免 DNS 查找开销。

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

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

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

  • PGPASSWORD的行为与password连接参数相同。出于安全原因,不建议使用此环境变量,因为某些 os 允许非 root 用户通过 ps 查看进程环境变量。而是考虑使用密码文件(请参阅Section 34.15)。

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

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

  • PGSERVICEFILE指定每个用户的连接服务文件的名称。如果未设置,则默认为~/.pg_service.conf(请参见Section 34.16)。

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

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

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

  • PGREQUIRESSL的行为与requiressl连接参数相同。不推荐使用此环境变量,而推荐使用PGSSLMODE变量。设置两个变量将抑制此变量的影响。

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

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

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

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

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

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

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

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

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

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

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

以下环境变量可用于为每个 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个文件的目录,以进行消息本地化。