Ruby on rails Postgresql";没有pg_hba.conf条目;错误

Ruby on rails Postgresql";没有pg_hba.conf条目;错误,ruby-on-rails,database,postgresql,postgresql-9.2,Ruby On Rails,Database,Postgresql,Postgresql 9.2,我正在为一个rails项目(我即将加入)设置本地postgresql数据库,并已完成以下工作: 已安装postgres 添加/捆绑“pg”宝石 创建了名为“foobar”的db用户 创建了一个名为“foobar_development”的数据库 rails应用程序附带一个rake db:migrate任务。运行此任务时,我得到以下错误输出: FATAL: no pg_hba.conf entry for host "::1", user "foobar", database "foobar

我正在为一个rails项目(我即将加入)设置本地postgresql数据库,并已完成以下工作:

  • 已安装postgres
  • 添加/捆绑“pg”宝石
  • 创建了名为“foobar”的db用户
  • 创建了一个名为“foobar_development”的数据库
rails应用程序附带一个rake db:migrate任务。运行此任务时,我得到以下错误输出:

FATAL:  no pg_hba.conf entry for host "::1", user "foobar", database "foobar_development", SSL off
我在以下位置找到了pg_hba.conf文件:

/usr/local/var/postgres

以下是pg_hba.conf文件的相关部分:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.

#local   replication     jimmyli                                trust
#host    replication     jimmyli        127.0.0.1/32            trust
#host    replication     jimmyli        ::1/128                 trust
我正在使用Mac附带的postgres(版本9.2.4),尽管我担心我可能已经在其他地方安装了另一个版本(并且应该删除它-无论如何我可以检查一下?)。我还使用Postgres.app运行psql。()


我认为我的pg_hba.conf文件应该可以正常工作(因为我让所有用户都可以访问所有数据库),所以我想知道是否还有另一个pg_hba.conf文件,并且我看到的是错误的文件/没有使用的文件。我如何检验这个假设?

pg_hba.conf应该复制到您的数据目录中。根据,它应该在~/Library/Application\Support/Postgres/var中。希望对

更改pg_hba.conf文件后是否重新加载了postgresql?尝试以超级用户身份登录数据库并发出
select pg_reload_conf()
重新加载pg_hba.conf和postgresql.conf文件。

明白了!看起来我看的是错误/不相关的pg_hba.conf文件。为了找到正确的版本,我使用psql登录数据库并运行“SHOW hba_file”

这为我提供了相关文件的路径,在我的情况下是:

/Library/PostgreSQL/9.1/data


然后,我在这个问题上添加了正确的行(参见我的问题),一切都正常了

在命令行中设置以下环境变量以要求Postgres连接使用SSL:

$ export PGSSLMODE=require

是的,这非常接近正确的路径-通过在postgres中显示hba_文件找到了正确的路径。