忘记了在 Postgres(Windows 安装)上的管理员密码,无法重置。

8 浏览
0 Comments

忘记了在 Postgres(Windows 安装)上的管理员密码,无法重置。

我安装了Windows版本的PostgreSQL。

根据一些帖子,'postgres'用户没有设置默认密码,但我不能使用空密码字符串进行连接。

当我尝试连接时,我收到以下异常:

Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "postgres"

最相关的提示是这样的:

https://stackoverflow.com/a/25943227/1005607

打开pg_hba.conf
将md5更改为TRUST
然后重新启动PgAdmin。

我尝试过这样做并重新启动了PGAdmin,但在尝试连接时仍然要求密码:

enter image description here

Windows的任务管理器显示正在运行一些PostgreSQL进程,我无法关闭它们。

我尝试了以下操作,但失败了:

pg_ctl restart
ERROR:
pg_ctl:未指定数据库目录并且环境变量PGDATA未设置
psql.exe postgres
Password: (none)
ERROR:
psql: fe_sendauth:未提供密码

如何重置用户'postgres'的默认密码?

0
0 Comments

当我在我的Windows机器上使用Postgres CLI时,我遇到了同样的问题,无法使用Postgres。但是我通过追踪密码存储的位置找到了解决方法:

%APPDATA%\PostgreSQL\pgpass.conf 

注意:在创建pgAdmin中的服务器或数据库时,您必须选择存储密码选项。

希望对您有所帮助。谢谢。

0
0 Comments

在Windows上安装Postgres时忘记了管理员密码,无法重置。这个问题的出现原因是没有找到"service postgresql restart"命令。解决方法是手动更新pg_hba.conf文件,允许信任的本地连接。然后重启PostgreSQL服务器。在这一点上,可以使用本地连接作为postgres用户连接到服务器,而无需输入密码。然后可以在psql终端中使用以下命令更改postgres用户角色并设置新密码。完成这一步后,再次重启PostgreSQL服务器,此时密码应该已更改为新密码。

具体步骤如下:

1. 更新pg_hba.conf文件以允许信任的本地连接:

[root] vim pg_hba.conf
    >> local all all         trust
    

2. 然后重启PostgreSQL服务器:

[user] pg_ctl -D C:\PostgreSQL\data restart    (Windows)
    [root] service postgresql restart            (Linux)
    

3. 使用postgres用户连接到服务器,并在psql终端中执行以下命令更改密码:

[root] psql -U postgres
    [psql] alter role postgres password <new_password>;
    

4. 完成密码更改后再次重启PostgreSQL服务器:

[user] pg_ctl -D C:\PostgreSQL\data restart     (Windows)
    [root] service postgresql restart             (Linux)
    

如果在Windows上找不到"service postgresql restart"命令,请参考这个答案中关于如何在Windows上重启PostgreSQL的方法。

0
0 Comments

原因:忘记了Postgres的管理员密码,无法重置。

解决方法:

1. 停止当前正在运行的Postgres服务,使用以下命令行指令,并指定"data"目录。例如,在我的情况下,目录为C:\PostgreSQL\data。

pg_ctl -D C:\PostgreSQL\data stop

2. 编辑文件pg_hba.conf(也位于\data目录)如下:

按照AK40所述,将所有MD5引用更改为trust,例如:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust

3. 运行以下命令:

psql -U postgres

4. 在出现的PG命令提示符中输入以下命令:

ALTER USER Postgres WITH PASSWORD '<newpassword>';

5. 保存更改,输入wq,然后按Enter键退出PG提示符。

6. 启动Postgres服务:

pg_ctl -D C:\PostgreSQL\data start

7. 如果需要,稍后可以还原pg_hba.conf中的MD5 -> Trust更改。

备注:

- 如果服务器已停止,如何使用psql -U postgres命令?

- 这是重新启动服务器的方法。

- 如果我的Postgres安装在“Program Files”目录中,如何使用第一个命令?

0