如何重置postgresql用户密码

本文介绍如何解决忘记PostgreSQL超级用户密码的问题,并演示创建新用户及数据库的步骤。涉及修改配置文件以绕过密码验证、创建新用户foo、创建数据库FooDB等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:

 打算新建一个postgresql的数据库 FooDB 并把所有者权限赋给用户 foo

 正常操作应该是:先创建用户foo,再用foo身份创建数据库 FooDB

 

 操作

 1、先创建用户 foo,在postgresql的bin目录下执行命令

 createuser.exe -s -P foo -U postgres

 -s 表示新建 foo用户是 superuser

 -P 表示执行命令后,显示输入密码的过程

 -U postgres 表示,使用超级用户postgres的身份连接数据库服务器,并创建新用户foo

 

 执行时候要求输入postgres用户的密码,结果发现密码早忘了,所以需要重新设置postgres用户的密码

 

解决方法:

 1、关闭数据库服务

 2、进入数据库的工作空间目录 (如果是建库是没有另外指定,应该就是postgresql安装目录下的 data 目录)

 3、编辑修改文件 pg_hba.conf,把连接权限设置的 md5 加密方式改成 trust

 以我的为例,原本设置是

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:

host all all 127.0.0.1/32 md5

 修改为

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:

    host all all 127.0.0.1/32 trust

 4、重新启动postgresql数据库服务

 5、可以不用密码就能用postgres用户登陆,然后执行修改用户密码的操作

 alter user postgres with password 'foobar';

 6、修改 pg_hba.conf 文件,改回到 md5 方式,再重启数据库服务就ok了 

 7、再执行建用户,和建库操作

 createuser.exe -s -P foo -U postgres

 createdb.exe --encoding=UTF8 --owner=foo --template=template_postgis -Ufoo

 参数:

 --encoding=UTF8 设置数据库的字符集

 --owner=foo 设置数据库的所有者

 --tmplate=template_postgis 设置建库的模板,该模板支持空间数据操作

 --Ufoo 用foo用户身份建立数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值