在ubuntu上重置PostgreSQL的密码

Rit*_*tta 84 unix postgresql postgresql-9.1

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

Dan*_*ité 189

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

# Database administrative login by Unix domain socket  
local   all             postgres                                peer
Run Code Online (Sandbox Code Playgroud)

(关于文件位置:9.1是主要的postgres版本和main"群集"的名称.如果使用更新版本的postgres或非默认名称,它将有所不同.使用该pg_lsclusters命令获取您的版本/系统的此信息).

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

然后你应该能够psql使用这个shell命令以postgres超级用户身份登录:

sudo -u postgres psql
Run Code Online (Sandbox Code Playgroud)

进入psql后,发出SQL命令:

ALTER USER postgres PASSWORD 'newpassword';
Run Code Online (Sandbox Code Playgroud)

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

ALTER USER ritesh PASSWORD 'newpassword';
Run Code Online (Sandbox Code Playgroud)

参考文献:PostgreSQL 9.1.13文档,第19章.客户端身份验证

请记住,您需要在末尾键入带有单个S的postgres

  • 我使用你的方法我的超级用户名是ritesh我的pg_hba.conf就像你提到的那样.我运行命令"ALTER USER postgres PASSWORD'newpassword';" 控制台显示'ALTER ROLE'.然后我退出使用ctrl + c之后我运行命令createuser .it显示输入密码我输入了newpassword但是它给了我错误"createuser:无法连接到数据库postgres:FATAL :密码验证失败,用户"ritesh"".如何创建用户以及该命令的密码应该是什么? (2认同)