我已经安装了PostgreSQL 8.4, Postgres客户端和Pgadmin 3。控制台客户端和Pgadmin用户“postgres”身份验证失败。我已经输入用户作为“postgres”和密码“postgres”,因为它以前工作过。但是现在身份验证失败。我以前做过几次都没有这个问题。我该怎么办?发生了什么?

psql -U postgres -h localhost -W
Password for user postgres: 
psql: FATAL:  password authentication failed for user "postgres"
FATAL:  password authentication failed for user "postgres"

当前回答

在我的例子中,Ubuntu 20.04 Postgresql 12使用了错误的端口。

我检查了/etc/postgresql/12/main/postgresql.conf,发现它是5433而不是5432。

其他回答

我在Windows 10上也遇到了同样的错误。在我的例子中,当我设置Postgres时,我的用户名默认是Postgres。 但是当我运行命令psql时,它显示我的用户名为jitender,这是我的机器名,我不知道为什么这个用户名已经设置。

为了解决这个问题,我做了以下步骤: 执行命令psql——help

在输出中,寻找Connection Option,在这里您将看到默认用户,在我的示例中为jitender。 您还将获得设置另一个用户名的命令,该命令应该是psql——username postgres。你可以设置你需要的用户名,问题就解决了。

当你安装postgresql时,没有为postgres用户设置密码,你必须在Unix上使用命令显式地设置它:

sudo passwd postgres

它会询问您的sudo密码,然后提示您输入新的postgres用户密码。 源

如果你看到错误

FATAL:  password authentication failed for user "postgres"

确保密码正确,检查密码是否有特殊字符,特别是“%”或斜杠。 在我的例子中,它是密码字符串中的“%”。删除此符号后,一切正常。

尽量不要使用-W参数,并让密码为空。有时创建用户时使用无密码。

如果不行,重置密码。有几种方法可以做到这一点,但这适用于许多系统:

$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';

如果您试图以postgres用户登录postgres shell,那么您可以使用以下命令。

切换到postgres用户

# su - postgres

登录PSQL

# psql

希望这能有所帮助