在ubuntu上重置PostgreSQL的密码

时间:2013-01-29 17:04:57

标签: postgresql unix postgresql-9.1

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

1 个答案:

答案 0 :(得分:173)

假设您是该计算机的管理员,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是“群集”的名称。如果使用较新版本的postgres或非默认名称,则会有所不同。 pg_lsclusters命令获取您的版本/系统的此信息。

无论如何,如果pg_hba.conf文件没有该行,请编辑该文件,添加该文件,然后使用sudo service postgresql reload重新加载该服务。

然后您应该能够使用此shell命令以psql作为postgres超级用户登录:

sudo -u postgres psql

进入psql后,发出SQL命令:

ALTER USER postgres PASSWORD 'newpassword';

在此命令中,postgres是超级用户的名称。如果忘记密码的用户是ritesh,则命令为:

ALTER USER ritesh PASSWORD 'newpassword';

参考文献:PostgreSQL 9.1.13 Documentation, Chapter 19. Client Authentication

请注意,您需要在结尾处输入 S S