安装 postgres 后,我尝试在 VPS 上启动 psql,但身份验证失败
~$ psql
Password:
psql: FATAL: password authentication failed for user "michael"
我回到安装说明,它让我以这种方式设置密码
sudo -u postgres psql template1
ALTER USER postgres with encrypted password 'your_password';
我再次尝试这样做但无法登录:
sudo -u postgres psql template1
Password:
psql: FATAL: password authentication failed for user "postgres"
我想我要么忘记了密码,要么更有可能的是,这一步做错了。说明告诉我,在 sudo nano /etc/postgresql/9.1/main/pg_hba.conf 中,更改
local all postgres
到
local all postgres md5
因此,在下面的代码中,我将两个实例都替换peer
为md5
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
现在我被锁定了,有什么方法可以恢复或更改我的密码吗?
更新
尝试登录时,无论我使用用户 postgres 还是 michael,身份验证都会失败
sudo -u michael psql template
Password:
psql: FATAL: password authentication failed for user "michael"
答案1
在启用 MD5 密码验证之前,您是否实际为这些数据库帐户设置了密码?
如果你没有设置密码(或者你设置了但是不记得了),你可以通过将身份验证类型设置trust
为pg_hba.conf
,以 Postgres 超级用户帐户登录,然后使用ALTER USER
命令。