从http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html, 它说:
当数据目录由 initdb 初始化时,会安装默认的 pg_hba.conf 文件。
我假设当我运行 时initdb
,它将在 处生成一个文件/var/lib/pgsql/9.1/data/pg_hba.conf
。但是,它也会在 处生成一个文件/var/lib/pgsql/pg_hba.conf
。
有人能解释一下我为什么得到两个内容不同的 pg_hba.conf 吗?
最终会使用哪一个?
答案1
最终我弄清楚了这个问题:
我正在使用流浪汉创造虚拟机并使用木偶安装postgresql-9.1puppet有一个postgresql-service模块,该模块包括两个与本问题相关的部分:
initdb 主要运行:
/sbin/service postgresql-9.1 initdb
该命令的结果是创建目录:
/var/lib/pgsql/9.1/data
在这个目录中,有一个默认的 pg_hba.conf
pg_hba.conf
使用我们的覆盖默认值customized pg_hba.conf
我遇到的问题是我输出
customized pg_hba.conf
的是/var/lib/pgsql
而不是/var/lib/pgsql/9.1/data
。
希望这个答案能够帮助其他人避免类似的问题。