【发布时间】:2010-10-29 16:45:08
【问题描述】:
我有一个拥有 PostgreSQL 数据库的客户端,但他不记得我们在设置数据库时使用的密码。有没有办法恢复这些信息,这样我就不必炸毁他的数据库并从头开始?
数据库在 PC 上运行。
【问题讨论】:
-
这在 serverfault.com 上不是更好吗?
标签: database postgresql password-recovery
我有一个拥有 PostgreSQL 数据库的客户端,但他不记得我们在设置数据库时使用的密码。有没有办法恢复这些信息,这样我就不必炸毁他的数据库并从头开始?
数据库在 PC 上运行。
【问题讨论】:
标签: database postgresql password-recovery
第一步:编辑PostgreSQL配置文件建立信任关系,无需密码登录:
vi /var/lib/pgsql/data/pg_hba.conf
旧线:
本地所有postgres密码
改成:
本地所有 postgres 信任
第 2 步: 重启 PostgreSQL 服务器:
服务 postgresql 重启
第 3 步:更改密码:
psql -U postgres template1 -c 用密码'newpassword'更改用户postgres;
第 4 步:密码已更新。恢复配置文件的原始设置:
vi /var/lib/pgsql/data/pg_hba.conf
旧线:
本地所有 postgres 信任
改成:
本地所有postgres密码
第 5 步:重启服务器并使用新密码访问 PostgreSQL 服务器。
服务 postgresql 重启
【讨论】:
/etc/postgresql/<version>/main/pg_hba.conf 下。我确认此处列出的说明仍然有效。
对于 9.2,在 Windows 中:
停止服务:
net stop postgresql-x64-9
修改配置文件, 更改 data/pg_hba.conf,基本上是 md5 以信任:
托管所有 127.0.0.1/32 信任
托管所有所有 ::1/128 信任
启动服务:
net start postgresql-x64-9
在 sql 控制台或使用 psql 执行 sql 语句以设置所需的密码:
使用密码“newpassword”更改用户 postgres;
放回原来的配置文件。
【讨论】: