对于任何新创建的用户,“用户密码验证失败”

对于任何新创建的用户,“用户密码验证失败”

我可以成功连接除一个用户之外的所有用户。即使更改密码后,我也总是收到“用户密码验证失败”的消息。上次服务器重启之前,这个功能是有效的。(可能是某些东西损坏了?)

尝试修复此问题一段时间后,我决定创建一个新用户。但是,我创建的任何新用户都会遇到同样的问题。

我刚刚执行了这个:

postgres@server:~$ psql
psql (9.6.13)
Type "help" for help.

postgres=# CREATE USER test WITH PASSWORD 'test';
CREATE ROLE
postgres=# CREATE DATABASE test;
CREATE DATABASE
postgres=# GRANT ALL ON DATABASE test TO test;
GRANT
postgres=# \q
postgres@server:~$ psql -U test -d test -h localhost
Password for user test:
psql: FATAL:  password authentication failed for user "test"
FATAL:  password authentication failed for user "test"

我很确定我没有输错这里的密码。

我的 pg_hba.conf 包含以下行:

host    all             all             127.0.0.1/32            md5

我有点迷茫,不知道该怎么做才能解决这个问题。

答案1

我刚刚解决了这个问题。有时你只需要把它写下来,然后花几秒钟思考一下 ;)

问题是,我的系统上的某些东西(目前还不知道是什么)似乎在启动时启动了旧版本的 postgres。当我使用 psql 创建用户时,似乎我通过 unix 域套接字连接到我的 postgres 9.6。

但是当我使用“-h localhost”连接时,我连接到了 9.4 实例。

并且显然该旧实例已经很长时间没有使用了,因此只有少数老用户。

因此实际错误并不是密码错误,只是用户失踪了。

现在我必须追踪启动旧 postgres 实例的任何事物;)

相关内容