Windows 11 升级、还原、备份 PostgreSQL 数据库之后无法登录,重置 PostgreSQL 用户密码

发布于:2023-09-14 ⋅ 阅读:(76) ⋅ 点赞:(0)

如果您在将 Windows 11 升级、还原、备份 PostgreSQL 数据库之后无法登录,可能需要重置 PostgreSQL 用户密码。下面是重置 PostgreSQL 密码的步骤:

  1. 打开命令提示符或 PowerShell 窗口(以管理员身份运行)。

  2. 进入 PostgreSQL 安装的 bin 目录。例如,如果 PostgreSQL 安装在 C:\Program Files\PostgreSQL\13 目录中,则在命令提示符或 PowerShell 中运行以下命令:

    cd "C:\Program Files\PostgreSQL\13\bin"
    
  3. 以管理员身份运行以下命令,停止 PostgreSQL 服务:

    pg_ctl stop -D "C:\Program Files\PostgreSQL\13\data"
    
  4. 以管理员身份运行以下命令,打开 pg_hba.conf 文件:

    notepad "C:\Program Files\PostgreSQL\13\data\pg_hba.conf"
    

    注意:如果您使用的是 PowerShell,请将“notepad”替换为“Start-Process”命令,因为在 PowerShell 窗口中无法直接打开文本编辑器。

  5. 将文件中的所有内容复制到文本编辑器中,并将“method”列中每个用户的值改为“trust”,如下所示:

    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    
    # "local" is for Unix domain socket connections only
    local   all             all                                     trust
    # 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.
    local   replication     all                                     trust
    host    replication     all             127.0.0.1/32            trust
    host    replication     all             ::1/128                 trust
    

    请注意,这将允许任何人在不需要密码的情况下登录到 PostgreSQL。

  6. 保存并关闭文本编辑器。

  7. 以管理员身份运行以下命令,启动 PostgreSQL 服务:

    pg_ctl start -D "C:\Program Files\PostgreSQL\13\data"
    
  8. 以管理员身份运行以下命令,登录到 PostgreSQL:

    psql -U postgres
    

    注意:如果您使用的是 PowerShell,则需要在登录命令之前使用“-noexit”选项,以便在退出 psql 时窗口不会关闭:

    Start-Process -FilePath "C:\Program Files\PostgreSQL\13\bin\psql.exe" -ArgumentList "-U postgres" -NoExit
    
  9. 在 psql 提示符下,输入以下命令以更改密码:

    ALTER USER yourusername WITH PASSWORD 'newpassword';
    

    其中“yourusername”是要更改密码的用户名,“newpassword”是新密码。

  10. 退出 psql:

    \q
    
  11. 以管理员身份运行以下命令,打开 pg_hba.conf 文件:

    notepad "C:\Program Files\PostgreSQL\13\data\pg_hba.conf"
    
  12. 恢复 pg_hba.conf 文件并重新打开密码认证。

  13. 以管理员身份运行以下命令,重新启动 PostgreSQL:

```
pg_ctl restart -D "C:\Program Files\PostgreSQL\13\data"
```

完成上述步骤后,应该可以使用新密码登录到 PostgreSQL。


网站公告

今日签到

点亮在社区的每一天
去签到