我正在尝试将 PostgreSQL 安装到 CentOS 上(我通过 SSH 连接)。我需要解压一个包(因此不通过 yum 或 rpm 下载):http://get.enterprisedb.com/postgresql/postgresql-9.3.4-3-linux-x64-binaries.tar.gz并进行设置。
我解压并运行以下命令
./postgresql-9.3/bin/initdb -D data/
./postgresql-9.3/bin/postgres -D data/
当我尝试运行./postgresql-9.3/bin/psql
或createuser
系统要求输入密码并输入密码时,我得到:
psql.bin: FATAL: password authentication failed for user "myusername"
问题:我该如何制作psql
和createuser
工作?
附加信息
我./data/pg-hba.conf
的如下:
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
postgres
另外,系统中似乎没有用户,这是有道理的,因为我只是解压了 tar.gz
答案1
首先,除了默认情况下,postgres 用户和你的操作系统用户不是一回事。
除非您在计算机上创建实际的postgres
系统帐户,否则您需要编辑pg_hba.conf
文件并设置身份验证方法。默认应该有一行类似
local all postgres peer
postgres
如果运行 psql 的人正在使用名为 的操作系统帐户,则告诉它让超级用户在本地登录postgres
。如果您更改peer
为trust
,则它将允许任何人使用 本地登录psql -U postgres
。一旦您可以连接,您就可以使用他们的密码创建其他用户。
一旦设置完毕,为了安全起见,您应该为用户设置一个密码postgres
,然后更改trust
为md5
需要密码才能连接。
答案2
您应该以管理用户的身份发出 psql 命令,这是postgres
默认设置:
sudo -u postgres psql postgres
(假设您已将 postgres 目录添加到您的路径中,或者sudo -u postgres ./postgresql-9.3/bin/psql postgres
)
进入 psql 控制台后,\password postgres
输入新密码