psql:致命:用户 windows 8 的密码验证失败

psql: FATAL: password authentication failed for user windows 8

我在 windows 上安装了 postgresql,当安装要求为 account.This 创建一个用户时,我在我的计算机上创建了一个名为 postgres 的新 windows 用户,我创建了一个也是它的密码。

现在我想在 windows 命令行上 运行 psql,它要求输入密码(没有提到用户)并且总是给我返回错误:psql: FATAL: password authentication failed for user "Ash". 即使我已经多次输入我的帐户密码。

使用 pgadmin 我将用户 "postgres" 更改为 "Ash" 但我还没有重新设置密码。我按照这里的步骤操作:I forgot the password I entered during postgres installation(我宁愿键入 host all 127.0.0.1/32 trust 因为我在 windows),但是当再次 运行ning psql 以便我可以更改我得到的密码时错误:psql FATAL:could not load pg_hba.conf. 全部在一起。

为什么加载不出来?我所做的只是添加一个额外的身份验证选项。

此外,windows 用户与 postresql 用户是分开的还是相同的(相互依赖)?

编辑:

如您所见,它没有让我选择 Aisha 是否应该是超级用户。或其他选项。

我也用过pgadmin|||创建一个新用户但弹出相同的错误:

用户不存在,为什么会这样?

你机器上的用户与PostgreSQL上的用户无关。安装程序只是创建一个帐户和一个具有相同名称和密码的 PostgreSQL 角色(在我看来这是个坏主意),但它们没有任何关系。 Windows用户用于运行服务器,PostgreSQL角色用于数据库内部。

所以你应该先用用户postgres访问服务器,然后再为自己创建一个用户。不要更改服务器内部的用户名,或服务器的 运行ning 用户!只需创建一个新用户名并授予它您需要的权限。

您可以使用 psql -U postgres 连接到服务器,它会要求输入密码。

检查 pg_hba.conf 的权限,postgres 用户必须有权限。如果你只是以管理员身份编辑它应该没问题,但如果你获得了权限或其他任何东西,它可能会搞砸。

createuser 是一个命令行实用程序。在 psql 中的 SQL 级别使用 CREATE USER username WITH PASSWORD 'fred'; 或类似内容。注意分号。

您在屏幕截图中所做的是开始编写以 createuser 开头的 SQL 命令,但永远不会将其发送到服务器 运行,因为没有分号终止符.因此,您永远不会收到会告诉您这样做没有意义的错误。

我遇到了完全相同的问题,这一行解决了它;

createuser --createdb -U postgres --login -P 'your_new_user'

@sami-kuhmonen说的对,但是他的解题方法对我没用。

如果存储密码的加密与 postgresql.conf ang pg_hba.conf

中定义的连接加密不匹配,也会发生这种情况

例如,如果 postgresql.conf 有:

password_encryption = md5

但是 pg_hba.conf 有:

host   all             all             10.0.0.110/24           scram-sha-256

然后 10.0.0.110 接口上的所有连接都将具有 'FATAL: password authentication failed error'。

请记住,如果您更改这些文件中的任何一个,您将需要重新启动 postgresql,如果您在 postgresql.conf 中更改密码加密,您将需要更改所有用户的密码。

希望这可以帮助其他人解决这个问题。