我使用Ubuntu。有几天我在rails上安装了用于ruby的Postgresql数据库。我为数据库服务器创建了一个超级用户,我忘了postgresql超级用户的密码。任何一个请帮助如何重置超级用户的密码。我试过的一件事,我卸载它,然后再次安装它,但其超级用户被保留,以前创建。
假设您是该机器的管理员,Ubuntu已授予您以任何用户身份运行任何命令的权利。
另外假设你没有限制pg_hba.conf文件中的权限(在/etc/postgresql/9.1/main目录中),它应该包含这一行作为第一条规则:
另外假设你没有限制pg_hba.conf文件中的权限(在/etc/postgresql/9.1/main目录中),它应该包含这一行作为第一条规则:
# Database administrative login by Unix domain socket local all postgres peer
(关于文件位置:9.1是主要的postgres版本,主要是你的“集群”的名称,如果使用较新版本的postgres或非默认名称会有所不同,使用pg_lsclusters命令获取你的版本/系统)。
无论如何,如果pg_hba.conf文件没有该行,编辑文件,添加它,并重新加载服务与sudo服务postgresql重新加载。
然后,您应该能够使用psql作为postgres超级用户使用此shell命令登录:
sudo -u postgres psql
ALTER USER postgres PASSWORD 'newpassword';
在此命令中,postgres是超级用户的名称。如果忘记密码的用户是ritesh,则命令将是:
ALTER USER ritesh PASSWORD 'newpassword';
参考文献:PostgreSQL 9.1.13 Documentation,Chapter 19. Client Authentication
记住,你需要在结尾处键入一个单个S的postgres