我在windows上安装了postgresql,在安装的时候它要求为这个帐户创建一个用户。这在我的电脑上创建了一个新的windows用户,叫做postgres,我也为它创建了一个密码。
现在我想在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上),但当再次运行psql以便我可以更改密码时,我得到错误:psql FATAL:could not load pg_hba.conf.
全部。
为什么加载不了?我只是加了一个额外的认证选项。
另外,windows用户和postresql用户是分开的还是相同的(相互依赖)?
编辑:
正如你所看到的,它没有给我选择Aisha是否应该成为超级用户的选项。或者其他选项。
我还使用了pgadmin|||创建新用户,但弹出相同的错误:
用户不存在,为什么要这样做?
5条答案
按热度按时间sg24os4d1#
你机器上的用户和PostgreSQL上的用户没有任何关系。安装程序只是创建了一个帐户和一个PostgreSQL角色,使用相同的名称和密码(在我看来这是一个坏主意),但它们没有任何关系。Windows用户用于运行服务器,PostgreSQL角色用于数据库内部。
所以你应该先用postgres用户访问服务器,然后为自己创建一个用户名,不要在服务器内部更改用户名,也不要更改服务器的运行用户名,只需要创建一个新的用户名并授予它你需要的权限。
您可以使用
psql -U postgres
连接到服务器,它会询问密码。检查pg_hba.conf的权限,postgres用户必须有权限。如果你只是以管理员的身份编辑它,应该没问题,但如果你有权限或其他任何东西,它可能会搞砸。
1rhkuytd2#
createuser
是一个命令行实用程序。在psql
中的SQL级别使用CREATE USER username WITH PASSWORD 'fred';
或类似命令。请注意分号。你在截图中所做的是开始写一个以
createuser
开头的SQL命令,但是从来没有把它发送到服务器运行,因为没有分号终止符,所以你从来没有得到错误,告诉你这样做没有意义。5uzkadbs3#
我有完全相同的问题,这条线解决了它;
@sami-kuhmonen是对的,但他解决问题的方法对我不起作用。
wribegjk4#
如果存储密码的加密与postgresql.conf和pg_hba.conf中定义的连接加密不匹配,也可能发生这种情况
例如,如果postgresql.conf具有:
但pg_hba.conf具有:
然后,www.example.com接口上的所有连接10.0.0.110都将显示“FATAL:密码身份验证失败错误“。
请记住,如果您更改了这些文件中的任何一个,则需要重新启动postgresql;如果您更改了postgresql.conf中的密码加密,则需要更改所有用户的密码。
希望这能帮助其他一些人解决这个问题。
vkc1a9a25#
我遇到了同样的错误。我可以通过定位“pg_hba.conf” 文件来解决它。您可以使用以下导航:
然后在文件内部,将所有方法“scram-sha-256”更改为信任,问题得到解决。