如何配置PostgreSQL以允许默认的postgres用户在没有localhost密码的情况下登录?
有几个类似的问题,例如this和this,但修改pg_hba.conf
的建议都没有对我有用。但是,根据我对pg_hba.conf
规则的理解,我应该可以使用peer
或trust
选项来完成此操作。
我试图运行如下命令:
sudo psql --user=postgres --no-password --command="blah;" -h 127.0.0.1
如果我在pg_hba.conf
中尝试这一行:
local all postgres trust
我的命令失败并显示错误:
psql: FATAL: no pg_hba.conf entry for host "127.0.0.1", user "postgres", database "postgres", SSL on
FATAL: no pg_hba.conf entry for host "127.0.0.1", user "postgres", database "postgres", SSL off
如果我尝试过这一行:
local all postgres peer
我的命令失败并出现同样的错误。
我该如何解决这个问题?
答案 0 :(得分:3)
当您指定-h 127.0.0.1
不 a" local"连接 - 它是主机(=基于TCP)的连接。因此,以local
开头的行与此类连接不匹配。
要使该条目有效,请不为psql
指定主机名或端口,然后它将使用" local"通过命名管道连接。
或者,您可local
使用host
,然后将127.0.0.1
作为(客户端)IP地址添加到" trust"。