Postgresql: password authentication failed for user “postgres”
我安装了PostgreSQL 8.4、Postgres客户端和PGADMin3。控制台客户端和pgadmin的用户"postgres"的身份验证失败。我输入了用户"postgres"和密码"postgres",因为它以前工作过。但是现在认证失败了。我以前做过几次,没有这个问题。我该怎么办?会发生什么?
1 2 3 4 | psql -U postgres -h localhost -W Password FOR USER postgres: psql: FATAL: password authentication failed FOR USER"postgres" FATAL: password authentication failed FOR USER"postgres" |
如果我没记错的话,默认情况下,用户
假设您可以在该框上访问
1 | sudo -u postgres psql |
如果由于
1 | sudo -u postgres psql template1 |
如果这些命令中的任何一个失败并出现错误
1 | LOCAL ALL postgres ident |
对于更新版本的PostgreSQL,
在
1 | ALTER USER postgres PASSWORD 'newPassword'; |
您可以通过键入ctrld或使用命令
现在,您应该能够给pgadmin一个有效的db超级用户密码,它也会很高兴。-)
员工的回答是正确的,但是如果您希望进一步自动化,可以做到:
完成!您保存了user=postgres和password=postgres。
如果您没有用户postgres ubuntu的密码,请执行以下操作:
这很令人沮丧,上面的大多数答案都是正确的,但没有提到必须在pg_hba.conf文件中的更改生效之前重新启动数据库服务。
因此,如果您进行上述更改:
1 | LOCAL ALL postgres ident |
然后作为根重新启动(在CentOS上,类似于ServiceServicePostgreSQL-9.2 Restart)现在,您应该能够作为用户postgres访问数据库。
1 2 3 4 5 | $psql psql (9.2.4) TYPE"help" FOR help. postgres=# |
希望这能为新的Postgres用户添加信息
编辑pg_hba.conf文件,例如使用
将所有身份验证方法更改为
如果您试图以postgres用户的身份登录postgres shell,那么可以使用以下命令。
切换到Postgres用户
1 | # su - postgres |
登录到PSQL
1 | # psql |
希望有所帮助
尽量不要使用-w参数,并将密码留空。有时创建用户时没有密码。
如果不起作用,请重置密码。有几种方法可以做到这一点,但这在许多系统上都有效:
1 2 3 4 | $ su root $ su postgres $ psql -h localhost > ALTER USER postgres WITH password 'YourNewPassword'; |
对于那些第一次使用它并且没有关于密码是什么的信息的人,他们可以遵循以下步骤(假设您在Ubuntu上):
打开
1 | sudo vi pg_hba.conf |
2.编辑下一行
1 | LOCAL ALL postgres peer |
到
1 | LOCAL ALL postgres trust |
重新启动服务器
1 | sudo service postgresql restart |
最后,您无需密码即可登录,如图E所示。
更多信息请参阅此处
经验法则是:永远不要为Postgres用户设置密码。
如果需要从pgadmin访问超级用户,请创建另一个超级用户。这样,如果该超级用户的凭据受到破坏,则可以始终使用ssh将其发送到实际的数据库主机中,并使用
1 | sudo -u postgres -c"DROP ROLE superuser;" |
我也有类似的问题。Ubuntu让我用超级用户的任何密码登录控制台。除非我在psql line命令中与-h localhost连接。
我也注意到"localhost:8080/myjspistologin"-显示:致命的:用户"user"的身份验证错误。
pg_hba.conf正常。
我注意到有两个版本的Postgres运行在同一个服务中。
已解决-正在卸载Inutil版本。
以下是我尝试登录的一些组合:
1 2 3 4 5 6 7 | # login via USER foo psql -Ufoo -h localhost sudo -u postgres psql postgres # USER foo login TO postgres db psql -Ufoo -h localhost -d postgres |
我只是想补充一点,您还应该检查您的密码是否过期。
有关详细信息,请参阅Postgres密码验证失败。
我希望这能在短时间内帮助你。您可以使用下面的命令更改PostgresSQL的密码。
命令sudo-u postgres psql
接下来你可以更新密码
命令更改用户postgres密码'your_new_password';