20.2. 文件位置#
除了前面提到的postgresql.conf
文件之外,PostgreSQL还使用其他两个手动编辑的配置文件,用于控制客户端身份验证(其用法在第 21 章中讨论)。默认情况下,所有三个配置文件都存储在数据库集群的数据目录中。本节中描述的参数允许将配置文件放在其他位置。(这样做可以简化管理。特别是,当配置文件分开保存时,通常更容易确保正确备份配置文件。)
data_directory
(string
) #指定用于存储数据的目录。此参数只能在服务器启动时设置。
config_file
(string
) #指定主服务器配置文件(通常称为
postgresql.conf
)。此参数只能在postgres
命令行中设置。hba_file
(string
) #指定基于主机的身份验证的配置文件(通常称为
pg_hba.conf
)。此参数只能在服务器启动时设置。ident_file
(string
) #指定用于用户名映射的配置文件(通常称为
pg_ident.conf
)。此参数只能在服务器启动时设置。另请参阅 第 21.2 节。external_pid_file
(string
) #指定服务器应创建的附加进程 ID (PID) 文件的名称,供服务器管理程序使用。此参数只能在服务器启动时设置。
在默认安装中,上述参数均未明确设置。相反,数据目录由-D
命令行选项或PGDATA
环境变量指定,所有配置文件均位于数据目录中。
如果您希望将配置文件保存在数据目录之外,则postgres``-D
命令行选项或PGDATA
环境变量必须指向包含配置文件的目录,并且data_directory
参数必须在postgresql.conf
(或在命令行中)中设置,以显示数据目录的实际位置。请注意,data_directory
覆盖了-D
和PGDATA
以确定数据目录的位置,但不会覆盖配置文件的位置。
如果您愿意,可以使用参数config_file
、hba_file
和/或ident_file
单独指定配置文件名称和位置。config_file
只能在postgres
命令行中指定,但其他文件可以在主配置文件中设置。如果所有三个参数加上data_directory
都已明确设置,则无需指定-D
或PGDATA
。
设置任何这些参数时,相对于postgres
启动的目录解释相对路径。