In addition to the postgresql.conf
file
already mentioned, PostgreSQL uses
two other manually-edited configuration files, which control
client authentication (their use is discussed in Chapter 20, Client Authentication). By default, all three
configuration files are stored in the database cluster's data
directory. The options described in this section allow the
configuration files to be placed elsewhere. (Doing so can ease
administration. In particular it is often easier to ensure that
the configuration files are properly backed-up when they are
kept separate.)
data_directory
(string
)
Specifies the directory to use for data storage. This option can only be set at server start.
config_file
(string
)
Specifies the main server configuration file
(customarily called postgresql.conf
).
This option can only be set on the postmaster command line.
hba_file
(string
)
Specifies the configuration file for host-based authentication
(customarily called pg_hba.conf
).
This option can only be set at server start.
ident_file
(string
)
Specifies the configuration file for
ident authentication
(customarily called pg_ident.conf
).
This option can only be set at server start.
external_pid_file
(string
)
Specifies the name of an additional process-id (PID) file that the postmaster should create for use by server administration programs. This option can only be set at server start.
In a default installation, none of the above options are set explicitly.
Instead, the
data directory is specified by the -D
command-line
option or the PGDATA
environment variable, and the
configuration files are all found within the data directory.
If you wish to keep the configuration files elsewhere than the
data directory, the postmaster's -D
command-line option or PGDATA
environment variable
must point to the directory containing the configuration files,
and the data_directory
option must be set in
postgresql.conf
(or on the command line) to show
where the data directory is actually located. Notice that
data_directory
overrides -D
and
PGDATA
for the location
of the data directory, but not for the location of the configuration
files.
If you wish, you can specify the configuration file names and locations
individually using the options config_file
,
hba_file
and/or ident_file
.
config_file
can only be specified on the
postmaster
command line, but the others can be
set within the main configuration file. If all three options plus
data_directory
are explicitly set, then it is not necessary
to specify -D
or PGDATA
.
When setting any of these options, a relative path will be interpreted
with respect to the directory in which the postmaster
is started.