PostgreSQL Programmer's Guide
Prev | Chapter 17. libpq - C Library | Next

# Environment Variables

The following environment variables can be used to select default connection parameter values, which will be used by `PQconnectdb` or `PQsetdbLogin` if no value is directly specified by the calling code. These are useful to avoid hard-coding database names into simple application programs.

- `PGHOST` sets the default server name. If a non-zero-length string is specified, TCP/IP communication is used. Without a host name, libpq will connect using a local Unix domain socket.

- `PGPORT` sets the default port or local Unix domain socket file extension for communicating with the Postgres backend.

- `PGDATABASE` sets the default Postgres database name.

- `PGUSER` sets the username used to connect to the database and for authentication.

- `PGPASSWORD` sets the password used if the backend demands password authentication.

- `PGREALM` sets the Kerberos realm to use with Postgres, if it is different from the local realm. If `PGREALM` is set, Postgres applications will attempt authentication with servers for this realm and use separate ticket files to avoid conflicts with local ticket files. This environment variable is only used if Kerberos authentication is selected by the backend.

- `PGOPTIONS` sets additional runtime options for the Postgres backend.

- `PGTTY` sets the file or tty on which debugging messages from the backend server are displayed.

The following environment variables can be used to specify user-level default behavior for every Postgres session:

- `PGDATESTYLE` sets the default style of date/time representation.

- `PGTZ` sets the default time zone.

- `PGCLIENTENCODING` sets the default client encoding (if MULTIBYTE support was selected when configuring Postgres).

The following environment variables can be used to specify default internal behavior for every Postgres session:

- `PGGEQO` sets the default mode for the genetic optimizer.

Refer to the SET SQL command for information on correct values for these environment variables.

Prev | Home | Next
libpq Control Functions | Up | Threading Behavior