可以重置,核心思路是:临时把本地连接认证改成 trust 免密登录,改完密码后再恢复原样。全程不会动你的数据,放心操作。
🔧 操作步骤
停止 PostgreSQL 服务
按 Win + R,输入 services.msc 打开服务管理器。
找到类似 postgresql-x64-16 的服务(版本号按你实际安装的来),右键点击停止。
修改认证配置文件 pg_hba.conf
文件位置:C:\Program Files\PostgreSQL\<你的版本号>\data\pg_hba.conf(如果安装时改过路径,去对应目录找)。
用管理员身份打开记事本或 VS Code 编辑该文件,找到这两行(IPv4 和 IPv6 的本地连接):
text
host all all 127.0.0.1/32 scram-sha-256
host all all ::1/128 scram-sha-256
把最后的 scram-sha-256(或 md5)改成 trust,保存文件。
重启 PostgreSQL 服务
回到服务管理器,找到刚才那个服务,右键点击启动。
免密登录并重置密码
打开命令提示符(cmd)或 PowerShell,先切换到 bin 目录(如果 psql 不在系统路径里):
text
cd "C:\Program Files\PostgreSQL\<你的版本号>\bin"
登录(此时不需要密码,直接回车):
text
psql -U postgres
执行以下 SQL 设置新密码(把 '你的新密码' 换成你想设的):
sql
ALTER USER postgres WITH PASSWORD '你的新密码';
输入 \q 退出 psql。
恢复安全配置并重启服务
再次打开 pg_hba.conf,把刚才改的 trust 改回原来的 scram-sha-256 或 md5,保存。
最后再重启一次 PostgreSQL 服务,新密码就生效了。
⚠️ 这是临时应急方案。trust 认证意味着任何本地连接都能免密登录,重置完成后务必第一时间改回原认证方式,否则数据库等于大门敞开。
🆘 常见问题
找不到 pg_hba.conf 文件:去服务管理器查看 PostgreSQL 服务的"可执行文件的路径",里面的 -D 参数后面就是数据目录。
登录时仍然提示输入密码:确认是否改对了所有本地连接规则(除了 127.0.0.1 和 ::1,还有其他 host 行也一起改);确认服务已重启成功。