我安装了PostgreSQL 8.4,Postgres客户端和Pgadmin 3.对于控制台客户端和Pgadmin用户“postgres”的身份验证失败 . 我输入的用户为“postgres”,密码为“postgres”,因为之前有效 . 但现在身份验证失败了 . 我之前做过几次没有这个问题 . 我该怎么办?会发生什么?
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"
12 回答
如果我没记错的话,用户
postgres
默认情况下在Ubuntu上没有设置 DB 密码 . 这意味着,您只能使用postgres
OS user 帐户登录该帐户 .假设您可以在框中进行
root
访问:如果失败并出现
database "postgres" does not exists
错误,那么您很可能不在Ubuntu或Debian服务器上:-)在这种情况下,只需将template1
添加到命令:如果这些命令中的任何一个失败并出现错误
psql: FATAL: password authentication failed for user "postgres"
,则检查文件/etc/postgresql/8.4/main/pg_hba.conf
:必须有这样的行作为第一个非注释行:对于较新版本的PostgreSQL
ident
实际上可能是peer
. 那也没关系 .在
psql
shell中,您可以给 DB userpostgres
一个密码:您可以通过键入CtrlD或使用命令
\q
来保留psql
shell .现在你应该能够为pgAdmin提供DB超级用户的有效密码,它也会很开心 . :-)
工作人员的反应是正确的,但如果你想进一步自动化可以做到:
$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
Done! You saved User = postgres and password = postgres.
如果您没有用户postgres ubuntu的密码,请执行以下操作:
$ sudo passwd postgres
这很令人沮丧,上面的大多数答案都是正确的,但他们没有提到你必须在pg_hba.conf文件中的更改生效之前 restart the database service .
所以,如果你做了类似上面的事情
那么 restart 作为root(在centos上就像服务服务postgresql-9.2重启)现在你应该能够以用户postgres的身份访问数据库了
$ psql psql(9.2.4)输入“help”获取帮助 .
Postgres的=#
希望这为新的postgres用户添加信息
编辑pg_hba.conf文件,例如与
sudo emacs /etc/postgresql/9.3/main/pg_hba.conf
将所有身份验证方法更改为
trust
. 更改"postgres"用户的Unix密码 . 重启服务器 . 使用psql -h localhost -U postgres
登录并使用刚刚设置的Unix密码 . 如果可行,您可以将pg_hba.conf文件重新设置为默认值 .如果您尝试以postgres用户身份登录postgres shell,则可以使用以下命令 .
切换到postgres用户
登录psql
希望有所帮助
尽量不要使用-W参数并将密码留空 . 有时用户使用无密码创建 .
如果这不起作用重置密码 . 有几种方法可以做到这一点,但这适用于许多系统:
对于那些第一次使用它并且没有关于密码的信息的人,他们可以遵循以下步骤(假设您使用的是ubuntu):
/etc/postgresql/9.x/main
中打开文件 pg_hba.conf2.编辑以下行
至
所示
Ref here for more info
根据经验: YOU SHOULD NEVER EVER SET A PASSWORD FOR THE POSTGRES USER .
如果您需要pgAdmin的超级用户访问权限,请创建另一个超级用户 . 这样,如果该超级用户的凭据被泄露,您可以始终ssh到实际的数据库主机并手动删除超级用户
我只想补充一点,您还应该检查您的密码是否已过期 .
有关详细信息,请参阅Postgres password authentication fails .
以下是我尝试登录的一些组合:
我有类似的问题 . Ubuntu让我在控制台登录,并为超级用户提供任何密码 . 除非我在psql line命令中使用-h localhost连接 .
我也观察到“localhost:8080 / MyJSPSiteLogIn” - 显示:致命:用户“user”的身份验证错误 .
pg_hba.conf没问题 .
我注意到有两个版本的postgres在同一个服务中运行 .
解决 - 卸载inutil版本 .
我希望这会帮助你缩短时间 . 您可以使用bellow命令更改postgres sql的密码 .
命令
sudo -u postgres psql
接下来您可以更新密码
命令
Alter user postgres password 'YOUR_NEW_PASSWORD';