33.14. 环境变量
下列环境变量能被用于选择默认的连接参数值,如果调用代码没有直接指定值,它们将被用于PQconnectdb
、PQsetdbLogin
和PQsetdb
。例如,这些有助于防止数据库连接信息被硬编码到简单的客户端应用中。
-
PGHOST
的行为和host连接参数相同。 -
PGHOSTADDR
的行为和hostaddr连接参数相同。可以设置它来替代或者作为PGHOST
的补充来防止 DNS 查找负担。 -
PGPORT
的行为和port连接参数相同。 -
PGDATABASE
的行为和dbname连接参数相同。 -
PGUSER
的行为和user连接参数相同。 -
PGPASSWORD
的行为和password连接参数相同。出于安全原因,我们不推荐使用这个环境变量,因为某些操作系统允许非根用户通过ps看到进程的环境变量。可以考虑使用口令文件(见第 33.15 节)。 -
PGPASSFILE
和passfile连接参数的行为相同。 -
PGSERVICE
的行为和service连接参数相同。 -
PGSERVICEFILE
指定针对每个用户的连接服务文件名。如果没有设置,默认为~/.pg_service.conf
(见第 33.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 ROLE和ALTER DATABASE命令)。
这些环境变量的正确值可参考SQL 命令 SET。
下面的环境变量决定libpq的内部行为,它们会覆盖编译在程序中的默认值。