我不小心将 PostgreSQL 数据库的密码设置为空白,如何更改?

1 postgresql

当我将密码设置为空白时,它没有给出任何警告。现在,当我尝试使用空白密码登录时,它给了我一个错误“fe_sendauth:没有提供密码”。所以现在我无法登录 - 有什么想法可以再次访问数据库吗?

小智 11

这篇博文应该回答。完全披露:这是我的博文。

概括:

如果您有权访问运行 PostgreSQL 的机器上的 shell 帐户,并且您的 shell 以与 Postgres 本身或 root 相同的用户身份工作 - 解决方案很简单。

编辑您的pg_hba.conf文件,并在其开头放置:

local all all trust

或(取决于您的偏执狂):

local all postgres ident

并重启你的 PostgreSQL(通常类似于 /etc/init.d/postgres restart)。

之后,您应该能够以 postgres 用户身份连接到 Postgres,无需密码。

您应该注意,如果您选择了带有“ident”的选项,您将只能从名为“postgres”的 shell 帐户连接而无需密码。

pg_hba.conf重置密码后,不要忘记反转设置。

  • 完全没有问题。我绝对不觉得特别,我只是不赞成添加另一个(毕竟 google/bing/whatever caches)相同信息的副本。但是如果有人(在这种情况下像你一样)想要添加它 - 我没有问题。 (2认同)