为什么它要求我在这里输入密码来重启数据库

为什么它要求我在这里输入密码来重启数据库

我刚刚做完

pg_basebackup -h primary_host -p primary_port -D PGDATA -U 复制用户

我只是想重新启动数据库,所以我就这么做了

sudo su-postgres

sudo 服务 postgres 重启

然后 EC2 对我说

尊重他人的隐私,打字前请先思考,...

它会询问我 postgres 的密码。但是自从我创建了这个 ec2 实例后,我就从未为 postgres 设置过任何密码。所以实际上没有密码,但它一直在询问我...

我猜想可能与 pg_basebackup 有关,但我不知道,因为主数据库也没有特定的密码。

我该怎么办,谢谢

答案1

当你跑步时

sudo su - postgres

它调用了一个新的shell,由 postgres 用户拥有。

然后,从那个壳里你跑其他sudo:

sudo service postgres restart

不出所料,它会要求输入当前系统用户的密码,即PostgreSQL 的,因为你是从属于 postgress 的 shell 运行的。同样,这不是因为你设置或没有设置 postgres 的密码,也不是数据库用户 postgres 的问题,而是 OS 帐户的问题,第一个命令调用了该帐户的 shell。

只需跳过第一个命令,或者在以 postgres 系统帐户完成操作后退出该 shell。您应该以普通管理员用户的身份使用 sudo 管理服务,而不是以 postgres 用户的身份。

相关内容