`/var/lib/pgsql/9.1/data/pg_hba.conf` 和 `/var/lib/pgsql/pg_hba.conf` 之间的区别

`/var/lib/pgsql/9.1/data/pg_hba.conf` 和 `/var/lib/pgsql/pg_hba.conf` 之间的区别

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

  1. 有人能解释一下我为什么得到两个内容不同的 pg_hba.conf 吗?

  2. 最终会使用哪一个?

答案1

最终我弄清楚了这个问题:

我正在使用流浪汉创造虚拟机并使用木偶安装postgresql-9.1puppet有一个postgresql-service模块,该模块包括两个与本问题相关的部分:

  1. initdb 主要运行:

    /sbin/service postgresql-9.1 initdb
    

    该命令的结果是创建目录:

    /var/lib/pgsql/9.1/data
    

    在这个目录中,有一个默认的 pg_hba.conf

  2. pg_hba.conf使用我们的覆盖默认值customized pg_hba.conf

    我遇到的问题是我输出customized pg_hba.conf的是/var/lib/pgsql而不是/var/lib/pgsql/9.1/data

希望这个答案能够帮助其他人避免类似的问题。

相关内容