我正在尝试使用以下设置在pgadmin 3中注册新服务器:
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
编辑:工具->服务器配置-> pg_hba.conf显示为灰色。
4条答案
按热度按时间0md85ypi1#
看起来PgAdmin-III可能默认通过IPv6连接,所以它使用的是
ident
线路,匹配本地主机的IPv6地址::1/128
。如果要使用密码身份验证,您可能需要:
我不知道为什么要将unix域套接字行设置为
trust
,但如果它只是一台开发机器,那么这可能是可以的,因此保持不变。不过,使用ident
(如果你想让UNIX用户和Pg用户相同)或md5
(本地UNIX套接字上的密码认证)确实更安全。如果PgAdmin-III没有编辑
pg_hba.conf
的权限,您需要直接在文本编辑器中编辑它。您可以通过sudo
以用户postgres
的身份运行PgAdmin-III,但是只使用nano
或类似的命令行文本编辑器来修改pg_hba.conf
更安全(可能更容易)。密码适用于
psql
,因为除非另有说明,否则psql
将通过unix域套接字连接,并且您将其设置为trust
。你可能会发现你可以给予psql
* 任何 * 密码,它仍然可以工作,因为它从来没有被要求提供密码,它只是被自动信任。bybem2ql2#
是的,这种类型的错误是由每个新手用户pgadmin看到的。我找到了这个解决方案,它为我工作。
这将询问您的系统密码,然后您将得到postgres提示。
然后在psql中键入下面的命令来更改密码。
现在输入新密码并重新输入。
ha5z0ras3#
PostgreSQL帐户调试步骤(Linux特定):
1.确保您确实安装了它(不仅仅是客户端,服务器也是)。
1.确保它正在运行。
1.确保你知道它在哪里-通常在**/var/lib/pgsql/data**-但是它可以在任何地方- /var/lib/pgsql/unrelated-instance。检查您的postgres进程,查看这是哪个目录(-D参数)。
1.修改上一步中目录中的pg_hba.conf文件。我不知道为什么这个步骤不在postgres文档中。
1.具体配置已在例如Jay和克雷格Ringer的回答请确保配置**IPV4和IPV6。
1.重启服务器。
1.测试您的配置是否有效。重复5-7,直到您可以成功登录。
1.重要不要停!现在,您应该配置一个更安全的密码选项- postgres可能适合进行快速本地设置,但您希望使用更安全、可配置的身份验证机制,如LDAP、Kerberos或GSSAPI。此外,您需要确保已打开SSL。
zwghvu4y4#
更改默认用户的密码
ALTER USER postgres WITH PASSWORD 'new_password';