34.15. 环境变量#
以下环境变量可用于选择默认连接参数值,如果调用代码未直接指定值,PQconnectdb
、PQsetdbLogin
和PQsetdb
将使用这些值。例如,这些变量可用于避免将数据库连接信息硬编码到简单的客户端应用程序中。
PGHOST
的行为与 host 连接参数相同。PGHOSTADDR
的行为与 hostaddr 连接参数相同。可以设置此变量来替代或补充PGHOST
,以避免 DNS 查找开销。PGPORT
的行为与 port 连接参数相同。PGDATABASE
的行为与 dbname 连接参数相同。PGUSER
的行为与 user 连接参数相同。PGPASSWORD
的行为与 password 连接参数相同。出于安全原因,不建议使用此环境变量,因为某些操作系统允许非 root 用户通过 ps 查看进程环境变量;相反,考虑使用密码文件(请参阅 第 34.16 节)。PGPASSFILE
的行为与 passfile 连接参数相同。PGREQUIREAUTH
的行为与 require_auth 连接参数相同。PGCHANNELBINDING
的行为与 channel_binding 连接参数相同。PGSERVICE
的行为与 service 连接参数相同。PGSERVICEFILE
指定每个用户连接服务文件(请参阅 第 34.17 节)的名称。默认为~/.pg_service.conf
,或 Microsoft Windows 上的%APPDATA%\postgresql\.pg_service.conf
。PGOPTIONS
的行为与 options 连接参数相同。PGAPPNAME
的行为与 application_name 连接参数相同。PGSSLMODE
的行为与 sslmode 连接参数相同。PGREQUIRESSL
的行为与 requiressl 连接参数相同。此环境变量已弃用,建议使用PGSSLMODE
变量;同时设置这两个变量会抑制此变量的效果。PGSSLCOMPRESSION
的行为与 sslcompression 连接参数相同。PGSSLCERT
的行为与 sslcert 连接参数相同。PGSSLKEY
的行为与 sslkey 连接参数相同。PGSSLCERTMODE
的行为与 sslcertmode 连接参数相同。PGSSLROOTCERT
的行为与 sslrootcert 连接参数相同。PGSSLCRL
的行为与 sslcrl 连接参数相同。PGSSLCRLDIR
的行为与 sslcrldir 连接参数相同。PGSSLSNI
的行为与 sslsni 连接参数相同。PGREQUIREPEER
的行为与 requirepeer 连接参数相同。PGSSLMINPROTOCOLVERSION
的行为与 ssl_min_protocol_version 连接参数相同。PGSSLMAXPROTOCOLVERSION
的行为与 ssl_max_protocol_version 连接参数相同。PGGSSENCMODE
的行为与 gssencmode 连接参数相同。PGKRBSRVNAME
与 krbsrvname 连接参数的行为相同。PGGSSLIB
与 gsslib 连接参数的行为相同。PGGSSDELEGATION
与 gssdelegation 连接参数的行为相同。PGCONNECT_TIMEOUT
与 connect_timeout 连接参数的行为相同。PGCLIENTENCODING
与 client_encoding 连接参数的行为相同。PGTARGETSESSIONATTRS
与 target_session_attrs 连接参数的行为相同。PGLOADBALANCEHOSTS
与 load_balance_hosts 连接参数的行为相同。
以下环境变量可用于为每个PostgreSQL会话指定默认行为。(另请参见ALTER ROLE和ALTER DATABASE命令,了解如何按用户或按数据库设置默认行为。)
有关这些环境变量的正确值的信息,请参阅SQL命令SET。
以下环境变量决定了libpq的内部行为;它们会覆盖编译时默认值。