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 行也一起改);确认服务已重启成功。

相关推荐
猫咪很可爱7 小时前
MySQL 视图与只读用户:安全查询的完整实践指南
数据库·sql·mysql
三垣网安9 小时前
某某大学心理健康教育平台弱口令及SQL注入漏洞
数据库·sql
泡海椒13 小时前
JQuick-SQL “数据源 SPI”辨析:应用适配器与 Function SPI 的正确边界
数据库·驱动开发·sql
泡海椒14 小时前
JQuick-SQL 逻辑数据仓库:以注册数据集构建轻量分析层
数据库·数据仓库·sql
泡海椒15 小时前
JQuick-SQL JQuickTable 模型:XML 动态 SQL 的表封装边界
xml·数据库·sql
geovindu1 天前
sql:SQL Pagination and Limiting Results using PorstgreSQL 18.0
大数据·数据仓库·sql·postgresql·数据库开发·数据库架构·1024程序员节
EnCi Zheng1 天前
PostgreSQL 实战指南:安装配置、数据类型、索引选型、MVCC 事务与高可用备份全解析
数据库·sql·postgresql·索引·1024程序员节
泡海椒1 天前
JQuick-SQL REST API 数据接入:应用层调用接口后注册分析表
数据库·sql·1024程序员节
handsome_sai1 天前
mysql索引
sql·1024程序员节
莫叫石榴姐1 天前
半导体业务数仓建模: Lot、Wafer、Die、Recipe、OEE、YMS 建模要点
数据仓库·sql·面试·职场和发展·矩阵·1024程序员节