我正在为rails项目(我正在加入)设置我的本地postgresql数据库,并且已完成以下操作:
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附带的postgres(版本9.2.4),虽然我担心我可能在其他地方安装了另一个版本(并且应该删除它 - 无论如何我可以检查这个?)。我也使用Postgres.app来运行psql。 (http://postgresapp.com/)。
我认为我的pg_hba.conf文件应该正常工作(因为我让所有用户都能访问所有dbs),所以我想知道是否还有另一个pg_hba.conf文件,而且我看错了一个/一个没有被使用。我该如何测试这个假设?
答案 0 :(得分:9)
知道了!看起来我正在查看错误/无关的pg_hba.conf文件。为了找到合适的,我使用psql登录数据库并运行“SHOW hba_file”
这给了我相关文件的路径,在我的例子中是:
/Library/PostgreSQL/9.1/data
然后我在这个问题上添加了正确的行(请参阅我的问题),一切正常!
答案 1 :(得分:4)
您是否在更改pg_hba.conf文件后重新加载postgresql?尝试以超级用户身份登录数据库并发出select pg_reload_conf();
以重新加载pg_hba.conf和postgresql.conf文件。
答案 2 :(得分:0)
pg_hba.conf应该被复制到您的数据目录中。根据{{3}},它应该在〜/ Library / Application \ Support / Postgres / var中。希望有所帮助...
答案 3 :(得分:0)
在命令行中设置以下环境变量以要求Postgres连接使用SSL:
$ export PGSSLMODE=require