我已经安装了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"

当前回答

在我的例子中,它的密码超过100个字符。将其设置为较小的字符密码有效。

事实上,我想知道有没有什么地方提到过这个。

其他回答

编辑pg_hba.conf文件,Debian在/etc/postgresql/9.3/main/pg_hba.conf, Red Hat/IBM在/var/lib/pgsql/9.4/data/pg_hba.conf

将所有身份验证方法更改为信任。 修改Linux postgres用户密码。 重新启动服务器。 使用psql -h localhost -U postgres登录,并使用刚才设置的Unix密码。 如果它工作,你应该重新设置pg_hba.conf文件的值md5或ident方法,并重新启动。

我只是想补充一句,你也应该检查一下你的密码是否过期了。

详细信息请参见Postgres密码验证失败。

给出的答案几乎是正确的,只是缺少一些指针,我会在我的解决方案中照顾

首先确保你的用户有sudo访问权限,如果没有,你可以使用下面的命令添加你的用户作为sudo用户

sudo adduser <username> sudo

更改将在用户下次登录时生效。

i)现在转到sudo vim /etc/postgresql/<your_postgres_version>/main/pg_hba.conf文件,寻找这样的行:

local   all             postgres                                md5 #peer

评论一下。就在这一行下面,必须有一个注释行,说:

local   all             postgres                                peer

或者对于旧版本,它将是:-

local   all         postgres                          ident

取消这一行的注释。

ii)现在重新启动postgres使用任何这些命令:-

sudo /etc/init.d/postgresql restart

OR

sudo service postgresql restart

iii)现在您可以使用以下命令简单地登录到postgres:

sudo -u postgres psql

Iv)一旦你在你可以创建任何你想要的操作,在我的情况下,我想创建一个新的数据库,你可以使用下面的命令做同样的事情:

CREATE DATABASE airflow_replica;

请记住,如果你安装了两个版本的Postgres,你需要卸载其中一个,在我的情况下,在MacOS上,我通过。dmg安装了一个版本,另一个通过brew安装。

对我来说有用的是使用以下步骤卸载通过.dmg安装的程序

进入/Library/PostgreSQL/13。 uninstall-postgres.app开放。

那就试试

psql postgres

它应该会起作用。

这是令人沮丧的,上面的大多数答案是正确的,但他们没有提到你必须重新启动数据库服务在pg_hba.conf文件中的更改将生效。

所以如果你做出如上所述的改变:

local all postgres ident

然后以root身份重新启动(在centos上,它类似于service service postgresql-9.2 restart) 现在您应该能够以用户postgres的身份访问数据库了

$psql
psql (9.2.4)
Type "help" for help.

postgres=# 

希望这能为postgres的新用户提供信息