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