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
文件目录。