【问题标题】:Can't reset password for postgresql db无法重置 postgresql 数据库的密码
【发布时间】:2020-04-06 07:17:44
【问题描述】:

这个问题可能已经在这里某个地方得到了回答,但是三天后我还没有找到解决方案,我想我已经检查了所有的 stackoverflow。

我的问题是我忘记了我的 postgresql 数据库 (v11) 的密码(或者至少无法登录)。

我已经在 cmd (使用 windows 7) 中输入了

psql -h localhost -U 'my_user_name' 

然后返回“写入密码”,然后我得到了

psql FATAL:用户“my_user_name”的密码验证

因此我进入 pg_hba.conf 文件并更改了行

host    all             all             ::1/128                 md5 

host    all             all             ::1/128                 trust

但是当运行 psql -h localhost -U 'my_user_name'

我后来得到

“psql FATAL:用户 'my_user_name' 不存在”

我该如何解决这个问题?我只是想重置密码,以便再次登录数据库。

【问题讨论】:

  • 这两个错误都不能通过编辑 pg_hba.conf 来修复 - 该文件不控​​制用户帐户和密码

标签: postgresql psql


【解决方案1】:

postgres 超级用户可能仍然存在。尝试运行psql -h localhost -U postgres

然后,您可以更改您的原始用户:

ALTER USER my_user_name PASSWORD 'password';

【讨论】:

  • 嗨,问题是我有两个 postgresql 数据库,如果我按照你的建议登录到“postgres”数据库,我会进入版本 10,但我想登录到版本 11。原因这是我所有的数据都在版本 10 上,但我无法将数据推送到我的 heroku 应用程序,因为该应用程序的版本是 11.4 db(我认为)。因此,我尝试登录到版本 11 db,将数据从 v10 db 推送到 v11 db(本地),然后将数据从 v11(本地)推送到 heroku 的 postgresql db。
  • 首先,不能有两个集群在同一个端口上运行。您的集群中可能有多个数据库,但您可以指定一个不同的数据库。听起来可能是:psql -h localhost -U postgres -d my_user_name,但也可能是别的东西。
  • 好的,那可能是个问题。我尝试运行您输入的命令,但它给出了“psql 致命数据库 my_user_name 不存在”。但是最好的前进方式是什么?: - 将数据库分开到不同的端口 - 将数据从 v10 db 取出到 csv 文件,然后擦除该数据库并将 csv 文件加载到 v11 db?, - 但这会解决问题吗?我现在有了? (即无法登录到 v11)
【解决方案2】:

您无需信任所有 IP 域。 只需通过 Unix 套接字域连接进行更改

local all all trust

重启 PostgreSQL 服务器 要登录,您只需要用户名

psql -U postgres

然后只需重置您的密码

\password postgres

退出并恢复对配置的更改并重新启动最后一次。您可以使用新密码访问您的帐户。

【讨论】:

    猜你喜欢
    • 2020-06-21
    • 1970-01-01
    • 2016-08-28
    • 2020-03-19
    • 2020-02-27
    • 2023-03-11
    • 1970-01-01
    • 2020-07-17
    • 2023-04-02
    相关资源
    最近更新 更多