31.14. 环境变量

下面的环境变量可以用于选择缺省的连接参数值,这些值将被PQconnectdbPQsetdbLoginPQsetdb使用,如果调用代码没有直接声明相应值的话。 比如,这些(环境变量)可以避免把硬编码数据库连接信息写入简单的客户端应用中。

  • PGHOSThost连接参数表现行为相同。

  • PGHOSTADDR与hostaddr连接参数表现行为相同。这样可以代替或除去PGHOST以避免DNS查找的开销。

  • PGPORTport连接参数表现行为相同。

  • PGDATABASEdbname连接参数表现行为相同。

  • PGUSERuser连接参数表现行为相同。

  • PGPASSWORDpassword连接参数表现行为相同。 出于安全原因是不推荐使用这个环境变量的,因为某些操作系统允许非root用户通过ps 看到进程的环境变量,而是考虑使用~/.pgpass的文件(详情请看Section 31.15)。

  • PGPASSFILE指定密码文件的名称用于查找。如果没有设置, 默认为~/.pgpass(见Section 31.15)。

  • PGSERVICEservice连接参数表现行为相同。

  • PGSERVICEFILE指定连接服务的文件中每个用户的名字, 如果没有设置默认~/.pg_service.conf (见Section 31.16)。

  • PGREALM设置与PostgreSQL一起使用的 Kerberos 域, 如果该域与本地域不同的话。如果设置了PGREALM,libpq 应用将试图用这个域(realm)与服务器进行认证并且使用独立的门票文件(ticket files) 以避免与本地的门票文件冲突。只有在服务器选择了 Kerberos 认证时才使用这个环境变量。

  • PGOPTIONSoptions连接参数表现行为相同。

  • PGAPPNAMEapplication_name连接参数表现行为相同。

  • PGSSLMODEsslmode连接参数表现行为相同。

  • PGREQUIRESSLrequiressl连接参数表现行为相同。

  • PGSSLCOMPRESSIONsslcompression连接参数表现行为相同。

  • PGSSLCERTsslcert连接参数表现行为相同。

  • PGSSLKEYsslkey连接参数表现行为相同。

  • PGSSLROOTCERTsslrootcert连接参数表现行为相同。

  • PGSSLCRLsslcrl连接参数表现行为相同。

  • PGREQUIREPEERrequirepeer连接参数表现行为相同。

  • PGKRBSRVNAMEkrbsrvname连接参数表现行为相同。

  • PGGSSLIBgsslib连接参数表现行为相同。

  • PGCONNECT_TIMEOUTconnect_timeout连接参数表现行为相同。

  • PGCLIENTENCODINGclient_encoding连接参数表现行为相同。

下面的环境变量可以用于为每个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文件目录。