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 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密码内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Postgresql 默认用户名与密码的操作

    在UNIX平台中安装PostgreSQL之后,PostgreSQL会在UNIX系统中创建一个名为"postgres"当用户.PostgreSQL的默认用户名和数据库也是"postgres", 不过没有默认密码.在安装PostgreSQL之后可以以默认用户登录,也可以创建新当用户名. 以默认用户登录 Yu @Coat ~ $ sudo su postgres #切换至postgres postgres @Coat /home /Yu $ psql postgres #

  • 基于PostgreSQL密码重置操作

    今天我在用命令行登陆postgresql的时候,忽然忘记密码了,重试了N次还是不行,然后我就试着上网找解决之道,最后完美的解决了,可是后来我才发现还有个更简单的方法,该篇博客用来记录自己沙雕行为. 工具已登陆 这个就是最简单的方法,你有工具登陆过,完全可以通过工具来修改(可是我当时完全没想到这个...),我是通过Navicat来连接的,可以直接通过Navicat来修改步骤如下: 1.连接数据库 2.点击角色 3.选择角色 4.填入新密码 5.保存之后,关闭连接,编辑连接就OK了. 工具未登录 W

  • Mac系统重置PostgreSQL密码的方法示例代码

    PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统.POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中.PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询.外键.触发器.视图.事务完整性.多版本并发控制等.同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型.函数.操作符.聚集函数.索引方法.过程

  • PostgreSQL 实现登录及修改密码操作

    PostgreSQL登录 1.可通过客户端pgAdmin III直接登录 2.可通过命令行 命令:psql -h 10.10.10.10 -U user -d postgres -p 5570 -h:数据库IP -U:登录用户 -d:登录的数据库 -p:登录端口 方法:进入postgreSQL的客户端安装目录(我的安装目录:C:\Program Files\PostgreSQL\9.4\bin),执行psql命令,其中\q表示退出数据库 修改密码 直接执行以下sql即可修改密码 alter us

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

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

  • Linux 3.X/4.x/5.x 忘记宝塔面板密码的解决方法

    进入ssh 输入以下命令重置密码(把命令最后面的 "testpasswd" 替换成你要改的新密码) 注: 若是debian/ubuntu用户,请使用有root权限的账户去执行这条命令 cd /www/server/panel && python tools.pyc panel testpasswd 紫框即你要修改的密码 红框即面板账户 如果提示多次登录失败,暂时禁止登录 请输入以下命令 清除登录限制 rm -f /www/server/panel/data/*.logi

  • Windows 8.1下MySQL5.7 忘记root 密码的解决方法

    [背景] 最近学习碰到了一件挺令人尴尬的事情,我把MySQL的密码给忘记了,所以MySQL登录不进去. 网上的解决方案很多,尝试了很多,依旧是被窗口的各种报错虐.感谢大神的助力,MySQL忘记密码解决方案才得以清晰,希望本篇博客的解决过程可以帮到读者. [问题解决过程] 一.跳过MySQL的权限审查进入MySQL 首先,找到MySQL的my.ini配置文件. 然后,打开文件,在mysqld下,添加一句代码 skip-grant-tables ,以跳过权限的审核. 很重要的一步:win+R 输入s

  • Mysql 忘记root密码和修改root密码的解决方法(小结)

    一 修改root密码的三种办法 方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:mysql> set password for root@localhost = password('123'); 方法2:用mysqladmin 格式:mysqladmin -u用户名 -p旧密码 password 新密码 例子:mysqladmin -uroot -p12

  • Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)

    首先启动命令行 1.在命令行运行:taskkill /f /im mysqld-nt.exe 下面的操作是操作mysql中bin目录下的一些程序,如果没有配置环境变量的话,需要切换到mysql的bin 目录下执行如下语句.不然无效 2.继续在命令行运行:mysqld-nt --skip-grant-tables 3.新开一个命令行运行:mysql -u root   (如果没有配置mysql的bin环境变量的话需要切换到bin目录下执行此语句) 如果不想改密码,只是想看原来的密码的话.可以在命令

  • windows 下忘记mysql root密码的更改方法

    mysql数据库忘记了root密码是件很痛苦的事,本文介绍如何解决windows环境下mysql服务器忘记root密码的解决方法. 1.关闭MySQL服务 window+r运行输入net stop mysql 2.在mysql的bin目录下打开命令行 空白处shift+鼠标右键---->找到在此处打开命令窗口 3.输入mysqld -nt --skip-grant-tables 出现信息以"set to off"结束,说明成功 4.同样地点另开一个命令行,输入mysql,回车 5

  • SQL Server忘记sa账号密码重新添加新账号

    一.停止数据库服务 打开sqlserver自带的配置管理器,停止数据库服务. 二.打开cmd窗口,执行命令(以管理员运行) 以单用户模式启动sqlserver,具体方法是以管理员方式启动命令提示符(CMD),输入如下命令: C:\Windows\system32>D: >cd D:\Develop\SqlServer2019\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn ---(安装路径下Binn) >sqlservr.exe -

  • Mac下忘记Mysql的root用户密码的解决方法

    好久没弄我电脑上的mysql了,密码都忘记了.不过没有关系,我们可以重置我们的密码 原理就是用安全方式打开mysql服务,然后更新存密码的表. 首先我们要关闭原来的mysql服务,System Preferences->MySQL->Stop MySQL Server 然后打开一个Terminal, 打开安全模式的mysql, 连接的时候不需要密码 sudo mysqld_safe --skip-grant-tables 然后再开一个Terminal,更新密码 mysql -u root UP

  • PhpMyAdmin 配置文件现在需要一个短语密码的解决方法

    新版本的PhpMyAdmin 增强了安全性,需要在配置文件设置一个短语密码.否则进入之后会有"配置文件现在需要一个短语密码."的红色警叹提示. 解决方法: 1.将 phpMyAdmin/libraries/config.default.php中的 $cfg['blowfish_secret'] = ''; 改成 $cfg['blowfish_secret'] = '123456'; (注:其中的'123456′为随意的字符) 2.在phpMyAdmin目录中,打开config.samp

  • mysql允许外网访问以及修改mysql账号密码实操方法

    mysql的root账户,我在连接时通常用的是localhost或127.0.0.1,公司的测试服务器上的mysql也是localhost所以我想访问无法访问,测试暂停. 解决方法如下: 1,修改表,登录mysql数据库,切换到mysql数据库,使用sql语句查看"select host,user from user ;" mysql -u root -pvmwaremysql>use mysql; mysql>update user set host = '%' wher

随机推荐