Postgresql“没有pg_hba.conf条目”错误

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

  • 安装postgres
  • 添加/捆绑’pg’gem
  • 创建名为“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 /本地的/ 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(版本9.2.4)附带的postgres,虽然我担心我可能在其他地方安装了另一个版本(并且应该删除它 – 无论如何我可以检查这个?)。 我也使用Postgres.app来运行psql。 ( http://postgresapp.com/ )。

我认为我的pg_hba.conf文件应该正常工作(因为我让所有用户都能访问所有dbs),所以我想知道是否还有另一个pg_hba.conf文件,而且我看错了一个/一个那是没用的。 我该如何测试这个假设?

得到它了! 看起来我正在查看错误/无关的pg_hba.conf文件。 为了找到合适的,我用psql登录db并运行“SHOW hba_file”

这给了我相关文件的路径,在我的例子中是:

/Library/PostgreSQL/9.1/data

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

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

pg_hba.conf应该被复制到您的数据目录中。 根据这里的列表 ,它应该在〜/ Library / Application \ Support / Postgres / var中。 希望有帮助……

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

 $ export PGSSLMODE=require