PostgreSQL 9.6.0 手册 | |||
---|---|---|---|
上一页 | 上一级 | 章 32. libpq - C 库 | 下一页 |
32.14. 环境变量
下列环境变量能被用于选择默认的连接参数值,如果调用代码没有直接指定值,它们将被用于PQconnectdb
、PQsetdbLogin
和PQsetdb
。例如,这些有助于防止数据库连接信息被硬编码到简单的客户端应用中。
-
PGHOST的行为和host连接参数相同。
-
PGHOSTADDR的行为和hostaddr连接参数相同。可以设置它来替代或者作为PGHOST的补充来防止 DNS 查找负担。
-
PGPORT的行为和port连接参数相同。
-
PGDATABASE的行为和dbname连接参数相同。
-
PGUSER的行为和user连接参数相同。
-
PGPASSWORD的行为和password连接参数相同。出于安全原因,我们不推荐使用这个环境变量,因为某些操作系统允许非根用户通过ps看到进程的环境变量。可以考虑使用~/.pgpass文件(见第 32.15 节)。
-
PGPASSFILE指定要用于查找的口令文件的名称。如果没有设置,默认为~/.pgpass(见第 32.15 节)。
-
PGSERVICE的行为和service连接参数相同。
-
PGSERVICEFILE指定针对每个用户的连接服务文件名。如果没有设置,默认为~/.pg_service.conf(见第 32.16 节)。
-
如果PostgreSQL要使用的 Kerberos 领域和本地领域不同,PGREALM可以设置它。如果PGREALM被设置,libpq应用将尝试通过服务器鉴定这个领域并且使用独立的票据文件来避免与本地票据文件冲突。只有在服务器选择了 GSSAPI 认证时,这个环境变量才被使用。
-
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文件的目录。