Postgresql 中文操作指南

20.2. File Locations #

除了前面提到的 _postgresql.conf_文件之外,PostgreSQL 还使用另外两个手动编辑的配置文件,用于控制客户端身份验证(它们的使用在 Chapter 21中已说明)。默认情况下,所有三个配置文件都存储在数据库集群的数据目录中。本节中描述的参数允许将配置文件放在其他位置。(这样做可以简化管理。特别是,分开保留配置文件时,通常更容易确保配置文件得到适当的备份。)

  • data_directory (string) #

    • 指定用于存储数据所用的目录。该参数只能在服务器启动时设置。

  • config_file (string) #

    • 指定主服务器配置文件(通常称为 postgresql.conf)。此参数只能在 postgres 命令行中设置。

  • hba_file (string) #

    • 指定用于基于主机验证的配置文件(通常称为 pg_hba.conf)。此参数只能在服务器启动时设置。

  • ident_file (string) #

    • 指定用于用户名映射的配置文件(通常称为 pg_ident.conf)。此参数只能在服务器启动时设置。另请参阅 Section 21.2

  • external_pid_file (string) #

    • 指定服务器应创建的附加进程 ID(PID)文件,以供服务器管理程序使用。此参数只能在服务器启动时设置。

在默认安装中,上述参数均未显式设置。相反,数据目录由 -D 命令行选项或 PGDATA 环境变量指定,而所有配置文件都在数据目录中找到。

如果你希望将配置文件存储在数据目录以外,则 postgres -D 命令行选项或 PGDATA 环境变量必须指向包含配置文件的目录,并且必须在 postgresql.conf(或在命令行中)中设置 data_directory 参数,以显示数据目录的实际所在位置。请注意,data_directory 覆盖了 -DPGDATA,以指定数据目录的位置,但不覆盖配置文件的位置。

如果你愿意,可以使用参数 config_filehba_file 和/或 ident_file 分别指定配置文件名称和位置。config_file 只能在 postgres 命令行中指定,但其他参数可以在主配置文件中设置。如果显式设置了所有三个参数加上 data_directory,则无需指定 -DPGDATA

在设置这些参数中的任何一个时,相对于 postgres 启动的目录来解释相对路径。