Postgres 密码验证失败

Postgres 密码验证失败

我已经在 Ubuntu Server 13.10 上安装了 PostgreSQL 9.1 和 pgadmin3。

我使用以下命令配置了 postgresql.conf:listen_addresses = '*'

我还通过将对等连接更改为来配置 ph_hba.confmd5

另外,我通过以下方式重置了 postgres 的密码:sudo password postgres

然后重新启动服务sudo /etc/init.d/postgresql restart

之后我尝试连接到默认的 PostgreSQL 模板数据库:

sudo -u postgres psql template1

但登录失败并出现以下错误消息:

psql: FATAL:  password authentication failed for user "postgres"

然后我尝试从 pgadmin 登录,但出现了同样的错误。

我在这里看到说这可能是密码过期错误 PostgreSQL 用户更改密码后无法连接到服务器

但我无法解决这个问题,因为我无法使用 psql 登录。有人知道如何解决这个问题吗?

编辑

ph_hba 文件:

这里

截屏:

在此处输入图片描述

答案1

您混淆了 Unix 用户“postgres”的密码和数据库用户“postgres”的数据库密码。它们并不相同。

您已将自己锁定,因为您启用了md5数据库用户的身份验证postgres,但没有为数据库用户设置密码postgres

在顶部添加新行pg_hba.conf

local    postgres     postgres     peer

然后重新启动/重新加载 PostgreSQL:

/etc/init.d/postgresql reload\

并运行:

sudo -u postgres psql

从结果提示来看:

ALTER USER postgres PASSWORD 'my_postgres_password';

删除你添加的行pg_hba.conf并再次重新启动 Pg。现在你可以使用上面设置的密码以用户身份连接到 PostgreSQL postgres

要了解更多信息,请阅读用户手册的“客户端身份验证”章节文档pg_hba.conf

答案2

尝试使用以下命令修改数据库 template1 的密码:

$ psql -c "ALTER USER postgres WITH PASSWORD 'yourPassword'" -d template1

答案3

在你的 pg_hba.conf 中

# IPv4 local connections:
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
host    all         all         127.0.0.1/32         trust

如果不起作用,请尝试

host    all         all         your_ip/32         trust

然后重新启动数据库,它将正常工作..如果您信任,则不需要密码,如果您创建 MD5,那么它会询问密码...

相关内容