31.14. 环境变量
下面的环境变量可以用于选择缺省的连接参数值,这些值将被PQconnectdb ,PQsetdbLogin和PQsetdb使用,如果调用代码没有直接声明相应值的话。 比如,这些(环境变量)可以避免把硬编码数据库连接信息写入简单的客户端应用中。
PGHOST与host连接参数表现行为相同。PGHOSTADDR与hostaddr连接参数表现行为相同。这样可以代替或除去PGHOST以避免DNS查找的开销。PGPORT与port连接参数表现行为相同。PGDATABASE与dbname连接参数表现行为相同。PGUSER与user连接参数表现行为相同。PGPASSWORD与password连接参数表现行为相同。 出于安全原因是不推荐使用这个环境变量的,因为某些操作系统允许非root用户通过ps 看到进程的环境变量,而是考虑使用~/.pgpass的文件(详情请看Section 31.15)。PGPASSFILE指定密码文件的名称用于查找。如果没有设置, 默认为~/.pgpass(见Section 31.15)。PGSERVICE与service连接参数表现行为相同。PGSERVICEFILE指定连接服务的文件中每个用户的名字, 如果没有设置默认~/.pg_service.conf(见Section 31.16)。PGREALM设置与PostgreSQL一起使用的 Kerberos 域, 如果该域与本地域不同的话。如果设置了PGREALM,libpq 应用将试图用这个域(realm)与服务器进行认证并且使用独立的门票文件(ticket files) 以避免与本地的门票文件冲突。只有在服务器选择了 Kerberos 认证时才使用这个环境变量。PGOPTIONS与options连接参数表现行为相同。PGAPPNAME与application_name连接参数表现行为相同。PGSSLMODE与sslmode连接参数表现行为相同。PGREQUIRESSL与requiressl连接参数表现行为相同。PGSSLCOMPRESSION与sslcompression连接参数表现行为相同。PGSSLCERT与sslcert连接参数表现行为相同。PGSSLKEY与sslkey连接参数表现行为相同。PGSSLROOTCERT与sslrootcert连接参数表现行为相同。PGSSLCRL与sslcrl连接参数表现行为相同。PGREQUIREPEER与requirepeer连接参数表现行为相同。PGKRBSRVNAME与krbsrvname连接参数表现行为相同。PGGSSLIB与gsslib连接参数表现行为相同。PGCONNECT_TIMEOUT与connect_timeout连接参数表现行为相同。PGCLIENTENCODING与client_encoding连接参数表现行为相同。
下面的环境变量可以用于为每个PostgreSQL会话声明缺省特性。 (又见ALTER ROLE和ALTER DATABASE命令, 在每用户或每数据库的基础上设置缺省行为。)
PGDATESTYLE设置缺省的日期/时间表现形式。(等效于SET datestyle TO ...。)PGTZ设置缺省的时区。(等效于SET timezone TO ...。)PGGEQO为基因优化器设置缺省模式。(等效于SET geqo TO ...。)
请参考SQL命令SET获取这些环境变量的正确数值。
下面的环境变量决定libpq的内部行为;它们覆盖编译的缺省。
PGSYSCONFDIR设置包含pg_service.conf文件和未来版本中可能的其他系统范围的配置文件的目录。PGLOCALEDIR设置包含信息国际化的locale文件目录。