34.15. Environment Variables
The following environment variables can be used to select default connection parameter values, which will be used by PQconnectdb
, PQsetdbLogin
and PQsetdb
if no value is directly specified by the calling code. These are useful to avoid hard-coding database connection information into simple client applications, for example.
PGHOST
behaves the same as the host connection parameter.PGHOSTADDR
behaves the same as the hostaddr connection parameter. This can be set instead of or in addition toPGHOST
to avoid DNS lookup overhead.PGPORT
behaves the same as the port connection parameter.PGDATABASE
behaves the same as the dbname connection parameter.PGUSER
behaves the same as the user connection parameter.PGPASSWORD
behaves the same as the password connection parameter. Use of this environment variable is not recommended for security reasons, as some operating systems allow non-root users to see process environment variables via ps; instead consider using a password file (see Section 34.16).PGPASSFILE
behaves the same as the passfile connection parameter.PGCHANNELBINDING
behaves the same as the channel_binding connection parameter.PGSERVICE
behaves the same as the service connection parameter.PGSERVICEFILE
specifies the name of the per-user connection service file (see Section 34.17). Defaults to~/.pg_service.conf
, or%APPDATA%\postgresql\.pg_service.conf
on Microsoft Windows.PGOPTIONS
behaves the same as the options connection parameter.PGAPPNAME
behaves the same as the application_name connection parameter.PGSSLMODE
behaves the same as the sslmode connection parameter.PGREQUIRESSL
behaves the same as the requiressl connection parameter. This environment variable is deprecated in favor of thePGSSLMODE
variable; setting both variables suppresses the effect of this one.PGSSLCOMPRESSION
behaves the same as the sslcompression connection parameter.PGSSLCERT
behaves the same as the sslcert connection parameter.PGSSLKEY
behaves the same as the sslkey connection parameter.PGSSLROOTCERT
behaves the same as the sslrootcert connection parameter.PGSSLCRL
behaves the same as the sslcrl connection parameter.PGSSLCRLDIR
behaves the same as the sslcrldir connection parameter.PGSSLSNI
behaves the same as the sslsni connection parameter.PGREQUIREPEER
behaves the same as the requirepeer connection parameter.PGSSLMINPROTOCOLVERSION
behaves the same as the ssl_min_protocol_version connection parameter.PGSSLMAXPROTOCOLVERSION
behaves the same as the ssl_max_protocol_version connection parameter.PGGSSENCMODE
behaves the same as the gssencmode connection parameter.PGKRBSRVNAME
behaves the same as the krbsrvname connection parameter.PGGSSLIB
behaves the same as the gsslib connection parameter.PGCONNECT_TIMEOUT
behaves the same as the connect_timeout connection parameter.PGCLIENTENCODING
behaves the same as the client_encoding connection parameter.PGTARGETSESSIONATTRS
behaves the same as the target_session_attrs connection parameter.
The following environment variables can be used to specify default behavior for each PostgreSQL session. (See also the ALTER ROLE and ALTER DATABASE commands for ways to set default behavior on a per-user or per-database basis.)
Refer to the SQL command SET for information on correct values for these environment variables.
The following environment variables determine internal behavior of libpq; they override compiled-in defaults.