无法设置 postgres 用户密码

eCo*_*Evo 0 postgresql centos ruby centos6

尝试使用以下指南在 CentOS 6.5 上使用 Ruby on Rails 和 Nginx 安装 PostgreSQL:http : //karolgalanciak.com/blog/2013/07/19/centos-6-4-server-setup-with-ruby-on- rails-nginx-and-postgresql/

安装后我去配置用户,所以发出命令sudo su postgresthen psql。当我这样做时,我收到以下错误:

could not change directory to "/root": Permission denied
psql (9.3.4)
Run Code Online (Sandbox Code Playgroud)

忽略这一点,我发出了命令:

alter user postgres with password 'postgres-user-password';
Run Code Online (Sandbox Code Playgroud)

然后我去将 auth 方法更改为 md5 dy 做:

sudo vi /var/lib/pgsql/9.3/data/pg_hba.conf
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我会看到提示:

[sudo] password for postgres:
Run Code Online (Sandbox Code Playgroud)

无论我输入什么密码,Sorry, try again.即使密码正是我刚刚设置的密码,我也会被告知。

尝试按照 user716468 这篇文章中的说明进行操作,但没有成功: 新安装后 postgres 的默认超级用户用户名/密码是什么?

当我这样做时,sudo -u postgres psql postgres我被告知:

postgres is not in the sudoers file.  This incident will be reported.
You have new mail in /var/spool/mail/root
Run Code Online (Sandbox Code Playgroud)

这里有什么问题?

use*_*838 5

首先,在使用 sudo 时总是使用 -l 或只使用普通的。例如,“ sudo su - postgres”不是“ sudo su postgres”。这可确保您正确选择目标用户环境。

听起来您正在使用 sudo 作为 root 用户。这是不必要的。root 用户已经拥有所需的权限。

如果您希望用户使用 sudo,那么您需要在 /etc/sudoers 中添加一个适当的配置条目。由于 postgres accoutn 是一个服务帐户,因此最好不要为 postgres 创建 sudoers 条目。最好以 root 身份或从“普通”帐户执行 sudo 操作。