Postgres 密码验证失败

Postgres Password Authentication Failed

我是 运行 WSL Ubuntu 18.04 上的 Postgres 12 数据库(Windows Linux 的子系统)。

我可以毫无问题地使用 sudo -u postgres psql 连接到数据库,并且可以查看和创建新的数据库和用户。

我使用 CREATE USER myusername WITH PASSWORD 'mypassword'; 和 psql returns CREATE ROLE 创建了一个新用户。

但是,当我尝试使用我在 psql -h localhost -U myusername 中设置的密码作为该用户登录时,我得到 psql: error: could not connect to server: FATAL: password authentication failed for user "myusername"

我已经尝试使用 ALTER USER myusername WITH PASSWORD 'newpassword'; 和 psql returns ALTER ROLE 多次更改此用户的密码。

我找到的一个常见的解决方案,比如this post,就是修改pg_hba.conf文件。

我的 pg_hba.conf 文件是:

local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            md5

我试过将第一行和第二行都修改为md5ident,每次都重新启动postgres服务器,但无济于事。我也试过完全卸载和重新安装 Postgres,这也不起作用。

有什么我遗漏的吗?我还能做些什么来尝试解决这个问题?谢谢!

仔细检查默认端口号上是否有另一个 PostgreSQL 实例 运行。

为了将来在 Linux 的 Windows 子系统上遇到此问题的人参考,我使用命令提示符搜索 运行 服务并查看 Postgres 服务是否是 运行 sc queryex type=service state=all | find /i "postgres"

这返回:

SERVICE_NAME: postgresql-x64-9.5
DISPLAY_NAME: postgresql-x64-9.5 - PostgreSQL Server 9.5

然后我可以使用 sc stop 和服务名称来停止服务:

sc stop postgresql-x64-9.5

这解决了密码验证问题。