在Ubuntu上重置PostgreSQL的密码

我正在使用Ubuntu。 在rails上安装Postgresql数据库之前的几天, 我创build了数据库服务器的超级用户,我忘记了postgresql超级用户的密码。 任何人都可以帮助如何重置超级用户的密码。 我试过的一件事,我卸载它,然后再次安装它,但超级用户保留,这是以前创build的。

假设你是机器的pipe理员,Ubuntu已经授予你sudo权限来以任何用户身份运行任何命令。
另外假设您没有限制pg_hba.conf文件(位于/etc/postgresql/9.1/main目录)中的权限,它应该包含这一行作为第一条规则:

 # Database administrative login by Unix domain socket local all postgres peer 

(关于文件位置: 9.1是主要的postgres版本, main是你的“cluster”的名称,如果使用更新版本的postgres或非默认名称,它将有所不同。使用pg_lsclusters命令获取你的版本/系统)。

无论如何,如果pg_hba.conf文件没有这行,编辑文件,添加它,并重新加载服务与sudo service postgresql reload

那么你应该可以用psql作为postgres超级用户用这个shell命令login:

 sudo -u postgres psql 

一旦进入psql,发出SQL命令:

 ALTER USER postgres PASSWORD 'newpassword'; 

在这个命令中, postgres是超级用户的名字。 如果忘记密码的用户是ritesh ,那么命令是:

 ALTER USER ritesh PASSWORD 'newpassword'; 

参考资料: PostgreSQL 9.1.13文档,第19章客户端authentication

请记住,你需要在最后input一个单独的S来inputpostgres