我正在尝试使用以下设置在pgadmin3中注册新服务器:
Name: postgres
Host: localhost
Username: postgres
Password: <password which works for psql>
Service: empty or postgres
但它显示错误:
FATAL: Ident authentification failed for user "postgres"
我重新启动了postgresql服务,但无济于事。
/var/lib/pgsql/data/pg_hba.conf的内容:
# TYPE DATABASE USER CIDR-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 ident
编辑:工具 - &gt;服务器配置 - &gt; pg_hba.conf是灰色的。
答案 0 :(得分:4)
PgAdmin-III可能默认情况下通过IPv6进行连接,因此它使用的ident
行与localhost的::1/128
的IPv6地址相匹配。
如果您想使用密码验证,您可能需要:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
我不确定为什么你将unix域套接字行设置为trust
,但如果它只是一台开发机器,那可能就行了,所以保持不变。将ident
(如果您希望unix用户必须与Pg用户相同)或md5
(对于本地unix套接字上的密码验证)更为安全。
如果PgAdmin-III没有编辑权限,则需要直接在文本编辑器中编辑pg_hba.conf
。您可以通过postgres
以用户sudo
运行PgAdmin-III,但是使用nano
或类似的命令行文本编辑器来修改{{1}更安全(也可能更容易) }}
密码适用于pg_hba.conf
,因为psql
除非另有说明,否则将通过unix域套接字连接,并将其设置为psql
。您可能会发现可以将任何密码提供给trust
并且它仍然可以正常工作,因为它永远不会被要求实际提供密码,它只是被自动信任。
答案 1 :(得分:3)
是的,每个新手用户都会看到pgadmin这种类型的错误。 我找到了这个解决方案,它对我有用。
sudo -u postgres psql
这将询问您的系统密码,然后您将收到postgres提示。
然后在psql type下面的命令中更改密码。
\password
现在输入新密码并重新输入。
答案 2 :(得分:0)
PostGreSQL帐户调试步骤(特定于Linux):