在Ubuntu中,我安装了PostgreSQL数据库并为服务器创建了一个超级用户。
如果我忘记了postgresql超级用户的密码,该如何为该用户重置密码(密码)?
我尝试卸载它,然后再次安装它,但是保留了先前创建的超级用户。
在Ubuntu中,我安装了PostgreSQL数据库并为服务器创建了一个超级用户。
如果我忘记了postgresql超级用户的密码,该如何为该用户重置密码(密码)?
我尝试卸载它,然后再次安装它,但是保留了先前创建的超级用户。
Answers:
假设您是计算机的管理员,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
。
然后,您应该可以psql
使用以下shell命令以postgres超级用户身份登录:
sudo -u postgres psql
进入psql后,发出SQL命令:
ALTER USER postgres PASSWORD 'newpassword';
在此命令中,postgres
是超级用户的名称。如果忘记密码的用户是ritesh
,则命令为:
ALTER USER ritesh PASSWORD 'newpassword';
参考:PostgreSQL 9.1.13文档,第19章。客户端认证
请记住,您需要在结尾输入带有单个S的postgres
ritesh
,请将上面的SQL更改为ALTER USER ritesh PASSWORD 'newpassword'