17.2. 文件位置

除了已经提到过的 postgresql.conf 文件之外, PostgreSQL 还使用另外两个手工编辑的配置文件, 它们控制客户端认证(它们的使用在 Chapter 20 里讨论)。 缺省时,所有三个配置文件都存放在数据库集群的数据目录里。 本节描述的选项允许配置文件放在别的地方。 (这么做可以简化管理,特别是如果配置文件独立放置,通常可以很容易保证它得到恰当的备份。)

data_directory (string)

声明为数据存储使用的目录。这个选项只能在服务器启动的时候设置。

config_file (string)

声明主服务器配置文件(通常叫做 postgresql.conf)。 这个选项只能在 postmaster 命令行上设置。

hba_file (string)

声明用于主机为基础的认证(HBA)配置文件的文件名。 (通常叫做 pg_hba.conf)。 这个选项只能在服务器启动的时候设置。

ident_file (string)

声明用于 ident (身份)认证的配置文件 (通常叫做pg_ident.conf)。 这个选项只能在服务器启动的时候设置。

external_pid_file (string)

声明服务器管理程序使用的一个附加的 postmaster 进程号(PID)文件的位置。 这个选项只能在服务器启动的时候设置。

在缺省安装里,不会明确设置这些参数。 取而代之的是用命令行参数 -D 或者环境变量 PGDATA 声明数据目录,而配置文件都放在数据目录里。

如果你想把配置文件放在别的地方,那么 postmaster 的命令行参数 -D 或者环境变量 PGDATA 必须指向包含配置文件的目录,而 postgresql.conf 里(或者命令行上)的 data_directory 选项必须设置为表示数据目录实际存放的地方。 请注意 data_directory 覆盖 -DPGDATA 上的数据目录的设置, 但是不覆盖配置文件的目录。

如果你愿意,你可以使用选项 config_filehba_file 和/或 ident_file 分别声明配置文件的名字。 config_file 只能在 postmaster 命令行上设置, 但是其他的可以在主配置文件里设置。如果明确设置了所有三个选项和 data_directory, 那么我们必须声明 -D 或者 PGDATA

在设置任何这些选项的时候,一个相对路径将被解释为与 postmaster 启动的时候相对的路径。