34.14. 环境变量 #
以下环境变量可用于选择连接参数的默认值,供 PQconnectdb、PQsetdbLogin 和 PQsetdb 在调用代码未直接指定参数值时使用。例如,这样可以避免在简单的客户端应用程序中硬编码数据库连接信息。
PGHOST的行为与 host 连接参数相同。PGHOSTADDR的行为与 hostaddr 连接参数相同。这可以替代或者与PGHOST一起设置,以避免 DNS 查找开销。PGPORT的行为与 port 连接参数相同。PGDATABASE的行为与 dbname 连接参数相同。PGUSER的行为与 user 连接参数相同。PGPASSWORD的行为与 password 连接参数相同。出于安全原因,不建议使用此环境变量,因为一些操作系统允许非 root 用户通过 ps 查看进程环境变量;而应考虑使用密码文件(参见第 34.15 节)。PGPASSFILE的行为与 passfile 连接参数相同。PGSERVICE的行为与 service 连接参数相同。PGSERVICEFILE指定每个用户的连接服务文件的名称(参见第 34.16 节)。默认为~/.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 连接参数相同。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 的内部行为,它们会覆盖编译在程序中的默认值。