在我的Ubuntu机器上,我安装了postgres 15,我创建了一个名为"test“的新超级用户(带有密码"test")。然后,我还创建了一个名为" test“的数据库,并将所有特权授予用户测试。下面是我所做的一系列步骤:
# Create a new user on Ubuntu
sudo adduser test
# Create the user test on postgres
sudo -u postgres psql postgres;
CREATE USER test SUPERUSER;
ALTER USER test WITH PASSWORD 'test';
exit;
# Login with test to create the DB and being the owner of the DB
sudo -u test psql postgres;
CREATE DATABASE test;
GRANT ALL PRIVILEGES ON DATABASE test TO test;
exit;在psql中,当我尝试以下操作时,我可以成功地连接:
psql -d test -U test然而,如果我尝试:
psql postgresql://test:test@localhost:5432/testI get: psql: error:连接到"localhost“(127.0.0.1)的服务器(127.0.0.1),端口5432失败:致命:用户”测试“密码身份验证失败
我在网上浏览过,但没有成功。这是mu pg_hba.conf文件的相关部分。

有什么帮助吗?
发布于 2023-03-13 22:01:23
您有两个不同的auth方法md5用于本地(套接字)和scram-sha-256用于主机(Ip)。这个psql -d test -U test使用套接字和md5,另一个使用host和scram-sha-256。您的密码设置为md5。解决方案是将scram-sha-256更改为md5并重新加载pg_hba.conf
每个文档密码auth:
为了简化从md5方法到较新的SCRAM方法的转换,如果md5被指定为pg_hba.conf中的一种方法,但是服务器上的用户密码是为pg_hba.conf加密的(见下文),则将自动选择基于SCRAM的身份验证。
然后,随着时间的推移,您可以将密码更改为scram-sha-256。
https://dba.stackexchange.com/questions/324718
复制相似问题