我在 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