2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: devel
不受支持的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1

19.2. 文件位置 #

除了前面提到的 postgresql.conf 文件之外,PostgreSQL 还使用另外两个手动编辑的配置文件,它们控制客户端身份验证(它们的使用在 第 20 章 中讨论)。默认情况下,这三个配置文件都存储在数据库集群的数据目录中。本节介绍的参数允许将配置文件放置在其他位置。(这样做可以简化管理。特别是,当配置文件单独存放时,更容易确保它们被正确备份。)

data_directory (string) #

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

config_file (string) #

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

hba_file (string) #

指定基于主机的身份验证配置文件(习惯上称为 pg_hba.conf)。此参数只能在服务器启动时设置。

ident_file (string) #

指定用户名映射的配置文件(习惯上称为 pg_ident.conf)。此参数只能在服务器启动时设置。另请参阅 20.2 节

external_pid_file (string) #

指定服务器应为服务器管理程序创建的附加进程 ID (PID) 文件的名称。此参数只能在服务器启动时设置。

在默认安装中,以上参数均未显式设置。而是通过 -D 命令行选项或 PGDATA 环境变量指定数据目录,并且所有配置文件都位于数据目录中。

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

如果需要,您可以使用 config_filehba_file 和/或 ident_file 参数单独指定配置文件名称和位置。config_file 只能在 postgres 命令行上指定,而其他参数可以在主配置文件中设置。如果显式设置了所有三个参数以及 data_directory,则无需指定 -DPGDATA

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

提交更正

如果您在文档中看到任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表格 报告文档问题。