Postgresql“没有 pg_hba.conf 条目”错误
Posted
技术标签:
【中文标题】Postgresql“没有 pg_hba.conf 条目”错误【英文标题】:Postgresql "no pg_hba.conf entry" error 【发布时间】:2013-07-04 05:14:57 【问题描述】:我正在为一个 Rails 项目(我正在加入)设置我的本地 postgresql 数据库,并完成了以下操作:
已安装 postgres 添加/捆绑了“pg”宝石 创建了一个名为“foobar”的数据库用户 创建了一个名为“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(版本 9.2.4)附带的 postgres,尽管我担心我可能在其他地方安装了它的另一个版本(并且应该删除它 - 无论如何我可以检查一下?)。我也在使用 Postgres.app 来运行 psql。 (http://postgresapp.com/)。
我认为我的 pg_hba.conf 文件应该可以正常工作(因为我让所有用户都可以访问所有数据库),所以我想知道那里是否还有另一个 pg_hba.conf 文件,我看错了一个/一个没有被使用。如何检验这个假设?
【问题讨论】:
【参考方案1】:知道了!看起来我正在查看错误/不相关的 pg_hba.conf 文件。为了找到正确的,我使用 psql 登录到数据库并运行“SHOW hba_file”
这给了我相关文件的路径,在我的例子中是:
/Library/PostgreSQL/9.1/data
然后我在这个问题中添加了正确的行(见我的问题),一切正常!
【讨论】:
【参考方案2】:对 pg_hba.conf 文件进行更改后,您是否重新加载了 postgresql?尝试以超级用户身份登录数据库并发出 select pg_reload_conf();
以重新加载 pg_hba.conf 和 postgresql.conf 文件。
【讨论】:
【参考方案3】:pg_hba.conf 应该被复制到您的数据目录。根据list here,它应该在 ~/Library/Application\ Support/Postgres/var 中。希望对您有所帮助...
【讨论】:
是的,这非常接近正确的路径 - 通过在 postgres 中执行 SHOW hba_file 找到正确的路径。【参考方案4】:在命令行中设置以下环境变量以要求 SSL 用于 Postgres 连接:
$ export PGSSLMODE=require
【讨论】:
以上是关于Postgresql“没有 pg_hba.conf 条目”错误的主要内容,如果未能解决你的问题,请参考以下文章
org.postgresql.util.PSQLException:致命:主机没有 pg_hba.conf 条目
致命:主机“::1”没有 pg_hba.conf 条目试图通过 ssh 隧道连接到 postgresql 服务器
heroku Postgres - 续集:主机没有 pg_hba.conf 条目
Heroku Postgres:“psql:致命:主机没有 pg_hba.conf 条目”
Azure Postgres:主机“0.0.0.0”、用户“用户名”、数据库“订单”、SSL 上没有 pg_hba.conf 条目
消息“28000:主机 \"xx.xxx.xxx.xxxx\"、用户 \"User"、数据库 \"databasename\"、SSL 关闭