当前位置: 首页 > 编程笔记 >

PostgreSQL忘记postgres账号密码的解决方法

云欣嘉
2023-03-14
本文向大家介绍PostgreSQL忘记postgres账号密码的解决方法,包括了PostgreSQL忘记postgres账号密码的解决方法的使用技巧和注意事项,需要的朋友参考一下

PostgreSQL简介

PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS)。PostgreSQL最初设想于1986年,当时被叫做Berkley Postgres Project。该项目一直到1994年都处于演进和修改中,直到开发人员Andrew Yu和Jolly Chen在Postgres中添加了一个SQL(Structured Query Language,结构化查询语言)翻译程序,该版本叫做Postgres95,在开放源代码社区发放。

下面给大家介绍下PostgreSQL忘记postgres密码的处理方法,具体内容如下所示:

PostgreSQL数据库中,假如你忘记了postgres账号的密码或者由于工作交接问题,等交接到你手头的时候,没有postgres账号密码,那怎么办呢?其实不用慌,像MySQL、SQL Server等数据库一样,只要你拥有操作系统权限,修改postgres超级账号的密码也非常方便简单。下面测试环境为CentOS Linux release 7.2.1511 (Core), PostgreSQL数据库版本为9.5。其它不同版本的操作其实是一样的,只是略有细微差别。

1:定位pg_hba.conf文件位置

首先找到pg_hba.conf文件的位置,具体有下面这些方法:

方法1:locate定位pg_hba.conf文件的位置

$ locate pg_hba.conf
/usr/pgsql-9.5/share/pg_hba.conf.sample
/var/lib/pgsql/9.5/data/pg_hba.conf

方法2:find命令查找。

$ find / -name "pg_hba.conf" 2>%1 | grep -v "Permission denied"
/var/lib/pgsql/9.5/data/pg_hba.conf

2:修改pg_hba.conf配置文件

修改pg_hba.conf前最好做一个备份,这是一个良好的习惯,避免回滚的时候,你能轻松回撤所有操作。

#cp /var/lib/pgsql/9.5/data/pg_hba.conf /var/lib/pgsql/9.5/data/pg_hba.conf.20210125

在pg_hba.conf中找到类似下面这样的地方:

# TYPE DATABASE USER ADDRESS  METHOD
 
# "local" is for Unix domain socket connections only
local all all   md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128  md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres  peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128  ident
 
# Allow html" target="_blank">access from all host to connect to this UAT server
host all all 0.0.0.0/0 md5

关于修改pg_hba.conf,如果你打算以socket方式在本机登录数据库,那么只需修改local这条记录,将pg_hba.conf中的这个选项的的值从md5修改为trust

修改前
# "local" is for Unix domain socket connections only
local all all   md5
 
修改后
# "local" is for Unix domain socket connections only
local all all   trust

trust表示允许可信的本地连接。此时连接数据库不用输入密码。

小知识:

TYPE表示主机类型,它的取值有下面这些:

local :表示是unix-domain的socket连接

host :表示TCP/IP socket

hostssl: 表示SSL加密的TCP/IP socket

如果你打算以TCP/IP方式访问数据库,即psql -h127.0.0.1 -Upostgres这样的方式,那么必须修改host的配置。具体如下所示:

修改前:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
 
 
修改后:
# IPv4 local connections:
host all all 127.0.0.1/32 trust

3: 重启PostgreSQL服务

重启PostgreSQL服务的方法很多,这里不做过多介绍,选择你常用的方式即可。

# service postgresql-9.5 stop
Redirecting to /bin/systemctl stop postgresql-9.5.service
# service postgresql-9.5 start
Redirecting to /bin/systemctl start postgresql-9.5.service
# service postgresql-9.5 status
Redirecting to /bin/systemctl status postgresql-9.5.service

4:重置账号postgres的密码

使用psql无密码登录,修改用户postgres的密码

alter user postgres with password '新的密码';

方式1:

#psql -U postgres

方式2:

#psql

关于两者,如果ssh是用postgres用户连接服务器的话,那么直接psql即可,如果是root用户连接服务器的话,必须用psql -U postgres

-bash-4.2$ psql
psql (9.5.6)
Type "help" for help.
 
postgres=# alter user postgres with password 'xxxxxxxx';
ALTER ROLE

5:恢复pg_hba.conf配置文件的修改

6:重启PostgreSQL服务

到此这篇关于PostgreSQL忘记postgres账号的密码的解决方法的文章就介绍到这了,更多相关PostgreSQL忘记postgres密码内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍解决MySQL忘记密码问题的方法,包括了解决MySQL忘记密码问题的方法的使用技巧和注意事项,需要的朋友参考一下 为大家提供的MySQL忘记密码的解决方案,供大家参考,具体内容如下 1.在操作系统windows操作系统,xp或win7.中进入如下目录: 2.停止MySQL服务 3.跳过授权给表    你会看到窗口光标在下一行的第一个位置闪烁,这说明已经启动了,不需要管。  4. 新建

  • 本文向大家介绍mysql8.0.19忘记密码的完美解决方法,包括了mysql8.0.19忘记密码的完美解决方法的使用技巧和注意事项,需要的朋友参考一下 推荐阅读:MySQL 8.0.19支持输入3次错误密码锁定账户功能(例子) 1.打开cmd窗口(最好以管理员身份打开),net stop mysql 停止mysql服务 2.开启跳过验证密码的mysql服务 mysqld --console  --

  • 本文向大家介绍Linux MySQL忘记root密码解决方案,包括了Linux MySQL忘记root密码解决方案的使用技巧和注意事项,需要的朋友参考一下 在使用MySQL数据库时,由于某些原因长时间没有登陆MySQL,或者由于工作交接完成度不高,导致数据库root登陆密码忘记,如何解决? 一、更改my.cnf配置文件 1、用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cn

  • 我完全无法访问postgres中的任何内容,因为它要求为默认的用户以及我的mac用户名提供密码。我也没有密码,在的情况下,我甚至不明白为什么会有密码,因为事实上它不应该有密码。 在浏览了关于该主题的许多其他答案后: 如果我运行: 如果我使用运行它: 如果我使用user运行它: 此外,在my中,所有方法都设置为信任,还尝试更改为和。 根据@jjanes的建议,我搜索了其他文件,这是我发现的: 最后一

  • 本文向大家介绍Mysql5.6 忘记root密码的解决办法,包括了Mysql5.6 忘记root密码的解决办法的使用技巧和注意事项,需要的朋友参考一下 查看当前安装的mysql版本: root@oraserver139 ~]# rpm -qa | grep MySQL MySQL-server-5.6.15-1.el6.x86_64 MySQL-client-5.6.15-1.el6.x86_64

  • 本文向大家介绍MACOS中忘记MySQL root密码的解决方案,包括了MACOS中忘记MySQL root密码的解决方案的使用技巧和注意事项,需要的朋友参考一下 MySQL 是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Da