windows下忘记pgsql密码

可以重置,核心思路是:‌临时把本地连接认证改成 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 行也一起改);确认服务已重启成功。

相关推荐
做运维的阿瑞3 小时前
多表查询基础:INNER JOIN、LEFT JOIN、RIGHT JOIN
数据库·sql·mysql·算法
Seraphina364 小时前
DVWA(SQL注入-low,medium,XSS反射-low)
前端·数据库·笔记·sql·网络安全·web·xss
韩曙亮10 小时前
【JavaEE】MyBatis 基本用法 ⑤ ( 单条件查询 | 多条件查询 | 多条件动态查询 | 单条件动态查询 )
java·sql·java-ee·mybatis·mapper·sql映射
阳光九叶草LXGZXJ12 小时前
达梦数据库-学习-71-存过执行过程中重建存过影响验证
linux·运维·数据库·sql·学习
2501_933670791 天前
2027届大数据管理与应用求职数字化转型顾问:项目、SQL、业务理解怎么排优先级
数据库·sql
资深技术分享员1 天前
Geejing WebBuilder 数据库连接配置与在线 SQL 工具,运维的左右手
运维·数据库·sql·低代码
做运维的阿瑞1 天前
一个 NULL 让整列姓名消失?MySQL 字符串与日期函数复盘
数据库·sql·mysql
阳光九叶草LXGZXJ1 天前
达梦数据库-学习-69-DM9主备集群部署
linux·运维·服务器·数据库·sql·学习
在猴站学算法1 天前
(SQL注入学习)联合查询注入(UNION-Based)
sql·学习·网络安全
小小龙学IT1 天前
Go 语言 database/sql 标准库深度解析:从连接池到驱动抽象
数据库·sql·golang