我刚刚做完
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 用户的身份。