今天我在用命令行登陆postgresql的时候,忽然忘记密码了,重试了N次还是不行,然后我就试着上网找解决之道,最后完美的解决了,可是后来我才发现还有个更简单的方法,该篇博客用来记录自己沙雕行为。

工具已登陆

这个就是最简单的方法,你有工具登陆过,完全可以通过工具来修改(可是我当时完全没想到这个。。。),我是通过Navicat来连接的,可以直接通过Navicat来修改步骤如下:

1、连接数据库

2、点击角色

3、选择角色

4、填入新密码

5、保存之后,关闭连接,编辑连接就OK了。

基于PostgreSQL密码重置操作

基于PostgreSQL密码重置操作

工具未登录

Windows

1、找到Postgresql安装目录下的data,打开文件夹,找到pg_hba.conf

ps:如果大家找不到,那我推荐一个文件搜索神器:Listary,大家可以去试试,贼好用

基于PostgreSQL密码重置操作

2.用记事本格式打开,拉到最下面,找到所有md5,全都改为trust

基于PostgreSQL密码重置操作

3.重启数据库,然后连接数据库,不输入密码,直接点连接,此时连接成功

ps:在windows的控制面板中,找到管理工具,然后找到服务:postgresql,点击右键 ,重启就行了。

基于PostgreSQL密码重置操作

4.修改密码

在客户端修改

alter user postgres with password 'YOUR PASSWORD'

5.或者重新打开pgAdmin(即数据库),连接服务器,不输入密码,直接点连接,此时连接成功

6.修改密码,右键登陆角色中要修改密码的账户,打开属性,点击定义,输入密码,然后确定,此时修改密码成功。如果重新打开定义会发现密码栏里依旧空白,但此时密码已是新密码。

基于PostgreSQL密码重置操作

7,最后将第一二步中的trust改回md5。重新启动数据库,输入密码,成功连接服务器。

Linux

如果是Linux下的话:

1、找到pg_hba.conf路径

运行

ps ax | grep postgres | grep -v postgres:

得到:

25653 pts/0 S+  0:00 /usr/lib/postgresql/9.3/bin/psql -h 192.168.10.10 -p 5432 -U postgres -W
26679 "htmlcode">
#原来是
host all    all    127.0.0.1/32   md5
# IPv6 local connections:
host all    all    ::1/128     md5
#改成
host all    all    127.0.0.1/32   trust
# IPv6 local connections:
host all    all    ::1/128     md5

ps:如果你重启之后还是登陆不了,也可以将全部md5修改为trust

重启postgresql服务

sudo service postgresql restart

登录

psql -h 127.0.0.1 -U postgres

3、登录修改密码

修改密码

alter user postgres with password 'YOUR PASSWORD'

最后将pg_hba修改回去就好啦,也就是将所有的trust还原为md5。

补充:centos 8 docker安装postgresql修改密码,远程访问设置

一,修改密码

1,进入容器

docker exec -it 834f03380346 bash

2,修改密码

基于PostgreSQL密码重置操作

二,远程访问设置

1,修改配置文件

基于PostgreSQL密码重置操作

1)、修改pg_hba.conf文件

配置用户的访问权限(#开头的行是注释内容):  

 # TYPE DATABASE USER CIDR-ADDRESS  METHOD
 # "local" is for Unix domain socket connections only
 local all all    trust
 # IPv4 local connections:
 host all all 127.0.0.1/32  trust
 host all all 0.0.0.1/0 md5
 # IPv6 local connections:
 host all all ::1/128  trust

2)、修改postgresql.conf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。

定位到#listen_addresses = 'localhost'。PostgreSQL安装完成后,默认只接受来自本机localhost的连接请求。

将行开头都#去掉,将行内容修改为listen_addresses = '*'来允许数据库服务器监听来自任何主机的连接请求!

2,修改入站规则

1),firewall-cmd --zone=public --add-port=5432/tcp --permanent

2),firewall-cmd --reload

3,关闭防火墙

systemctl stop firewalld.service

4,重启docker

systemctl restart docker.service

5,开启防火墙

systemctl start firewalld.service

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

标签:
PostgreSQL,密码重置

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com

评论“基于PostgreSQL密码重置操作”

暂无“基于PostgreSQL密码重置操作”评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?