无法更改 postgresql 中用户 postgres 的密码

无法更改 postgresql 中用户 postgres 的密码

我在 pg_hba.conf 中进行了以下输入

本地全部全部信任

但仍然

苏 Postgres

不接受空白作为密码。由于大多数文件归 postgres 所有,我无法运行 psql 或 pg_ctl。

编辑1

dhaval@ubuntu:~$ su -c "pg_ctl reload -D template1"
Password: 
su: Authentication failure

dhaval@ubuntu:~$ su -c psql
Password: 
su: Authentication failure

我在上面提供了 root 密码,但我猜它需要的是“postgres”超级用户密码。我没有相同的密码。我需要重置它。

EDIt2

dhaval@ubuntu:~$ sudo -i -u postgres
[sudo] password for dhaval:
postgres@ubuntu:~$ psql
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.

以上操作已让我使用 postgreSQL 命令提示符。但我仍然不确定为什么“信任”不起作用。

答案1

操作系统用户密码(尝试 su 时要求输入的密码)与Postgrestrust用户密码(在 中设置 auth 时不需要的内容pg_hba.conf)。

您需要设置一个有效的操作系统密码为操作系统的 postgres 用户并输入该密码以便 su 到该用户(或者从 root su 到该用户,这样您不需要输入密码)。

通常是 postgres操作系统数据库初始化后用户密码被锁定,因为唯一需要作为 postgres 运行的是,它可以从您的初始化脚本(以 root 身份运行,因此不需要密码)pg_ctl启动。su -c

答案2

您很可能正在尝试执行“su postgres”。Ubuntu 不允许非 root 用户切换到其他用户。因此您可能需要先假设为 root,然后再执行 su postgres。

要成为“root”,请尝试:

须藤苏-

之后,尝试:

苏 Postgres

这样您就可以以操作系统所理解的“postgres”用户身份进行访问。

希望这可以帮助。

最好的 Vishal Belsare

相关内容