重置 postgres 用户密码

在使用PostgreSQL数据库时忘记postgres用户的密码是件很头疼的事,因为很多操作都需要postgres这个超级用户授权,所以下面就记录一下如何重置postgres用户密码。

假设PostgreSQL的安装目录是C:\PostgreSQL\14\

第一步:修改 pg_hba.conf 文件

进入C:\PostgreSQL\14\data\目录,打开pg_hba.conf文件,找到如下高亮位置,将连接模式改为信任模式:

# TYPE DATABASE USER ADDRESS METHOD
 # "local" is for Unix domain socket connections only
local all all scram-sha-256
 # IPv4 local connections:
host all all 0.0.0.0/0 trust
# host all all 127.0.0.1/32 md5
# host all all 0.0.0.0/0 scram-sha-256

注意:列与列之间的值要用空格隔开,用tab隔开无效,还有就是修改完要重启 PostgreSQL。

第二步:免密登录

进入C:\PostgreSQL\14\bin目录,然后右键在此打开命令行,然后执行如下命令:

psql -U postgres -d postgres -h 127.0.0.1 -W

第三步:重设密码

alter user postgres with password '123456';

第四步:关闭信任模式

由于信任模式可以不使用密码连接数据库,存在极大的安全风险,不适合日常使用,所以重置完密码后应将该模式关闭,改为使用其它密码认证模式。

# TYPE DATABASE USER ADDRESS METHOD
 # "local" is for Unix domain socket connections only
local all all scram-sha-256
 # IPv4 local connections:
# host all all 0.0.0.0/0 trust
host all all 127.0.0.1/32 md5
# host all all 0.0.0.0/0 scram-sha-256

最后,重启 PostgreSQL。