您现在的位置是:首页 > 博客网站制作 > 心得笔记心得笔记

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

杨青青2022-02-20【心得笔记】人已围观

简介PostgreSQL简介PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS)。PostgreSQL最初设想于1986年,当时被叫做BerkleyPostgresProject。该项

PostgreSQL简介

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

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

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

1:定位pg_hba.conf文件位置

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

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

$locatepg_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"Permissiondenied"
/var/lib/pgsql/9.5/data/pg_hba.conf

2:修改pg_hba.conf配置文件

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

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

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

#TYPEDATABASEUSERADDRESSMETHOD

#"local"isforUnixdomainsocketconnectionsonly
localallallmd5
#IPv4localconnections:
hostallall127.0.0.1/32md5
#IPv6localconnections:
hostallall::1/128md5
#Allowreplicationconnectionsfromlocalhost,byauserwiththe
#replicationprivilege.
#localreplicationpostgrespeer
#hostreplicationpostgres127.0.0.1/32ident
#hostreplicationpostgres::1/128ident

#AllowaccessfromallhosttoconnecttothisUATserver
hostallall0.0.0.0/0md5

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

修改前
#"local"isforUnixdomainsocketconnectionsonly
localallallmd5

修改后
#"local"isforUnixdomainsocketconnectionsonly
localallalltrust

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

小知识:

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

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

host:表示TCP/IPsocket

hostssl:表示SSL加密的TCP/IPsocket

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

修改前:
#IPv4localconnections:
hostallall127.0.0.1/32md5


修改后:
#IPv4localconnections:
hostallall127.0.0.1/32trust

3:重启PostgreSQL服务

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

#servicepostgresql-9.5stop
Redirectingto/bin/systemctlstoppostgresql-9.5.service
#servicepostgresql-9.5start
Redirectingto/bin/systemctlstartpostgresql-9.5.service
#servicepostgresql-9.5status
Redirectingto/bin/systemctlstatuspostgresql-9.5.service

4:重置账号postgres的密码

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

1alteruserpostgreswithpassword'新的密码';

方式1:

1#psql-Upostgres

方式2:

1#psql

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

-bash-4.2$psql
psql(9.5.6)
Type"help"forhelp.

postgres=#alteruserpostgreswithpassword'xxxxxxxx';
ALTERROLE

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

6:重启PostgreSQL服务

Tags:

很赞哦! ()

文章评论

站点信息

  • 建站时间:2011年01月12日
  • 网站程序:帝国CMS7.5
  • 主题模板《今夕何夕》
  • 文章统计625篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们