我发现了一些显示如何重置PostgreSQL密码的网站。
我可以通过SSH连接到机器,这是一个OpenSuse 13.2服务器,我尝试了给出的命令,但从未起作用,我无法进入psql以发出SQL来更改密码。
因此,pg_hba.conf有一行看起来像:
# TYPE DATABASE USER ADDRESS METHOD
host all postgres ident sameuser
然后我尝试停止/开始:
/etc/init.d/postgresql stop
/etc/init.d/postgresql start
然后我收到此错误:
Job for postgresql.service failed. See "systemctl status postgresql.service" and "journalctl -xn" for details.
因此,数据库甚至无法启动。
顺便说一句,我知道我可以这样做:/etc/init.d/postgresql restart 但我只是想知道数据库在重新启动之前就已经停止了。我将pg_hba.conf文件更改回:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all postgres trust
# IPv4 local connections:
host all postgres 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 ident
现在我终于可以再次开始postgres,所以现在我要尝试登录:
psql -U postgres
给了我:
psql: FATAL: role "postgres" is not permitted to log in
通过每个网站,这应该有效。所以,通过SSH远程甚至在那台机器上,我仍然无法登录postgres,我仍然无法更改密码。
我需要进入并远程执行此操作,如果我必须在机器上,我也可以这样做。