首页 文章

Postgresql:用户“postgres”的密码验证失败

提问于
浏览
286

我安装了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 回答

  • 0

    如果我没记错的话,用户 postgres 默认情况下在Ubuntu上没有设置 DB 密码 . 这意味着,您只能使用 postgres OS user 帐户登录该帐户 .

    假设您可以在框中进行 root 访问:

    sudo -u postgres psql
    

    如果失败并出现 database "postgres" does not exists 错误,那么您很可能不在Ubuntu或Debian服务器上:-)在这种情况下,只需将 template1 添加到命令:

    sudo -u postgres psql template1
    

    如果这些命令中的任何一个失败并出现错误 psql: FATAL: password authentication failed for user "postgres" ,则检查文件 /etc/postgresql/8.4/main/pg_hba.conf :必须有这样的行作为第一个非注释行:

    local   all         postgres                          ident
    

    对于较新版本的PostgreSQL ident 实际上可能是 peer . 那也没关系 .

    psql shell中,您可以给 DB user postgres 一个密码:

    ALTER USER postgres PASSWORD 'newPassword';
    

    您可以通过键入CtrlD或使用命令 \q 来保留 psql shell .

    现在你应该能够为pgAdmin提供DB超级用户的有效密码,它也会很开心 . :-)

  • 3

    工作人员的反应是正确的,但如果你想进一步自动化可以做到:

    $ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"

    Done! You saved User = postgres and password = postgres.

    如果您没有用户postgres ubuntu的密码,请执行以下操作:

    $ sudo passwd postgres

  • 113

    这很令人沮丧,上面的大多数答案都是正确的,但他们没有提到你必须在pg_hba.conf文件中的更改生效之前 restart the database service .

    所以,如果你做了类似上面的事情

    本地所有postgres身份

    那么 restart 作为root(在centos上就像服务服务postgresql-9.2重启)现在你应该能够以用户postgres的身份访问数据库了

    $ psql psql(9.2.4)输入“help”获取帮助 .

    Postgres的=#

    希望这为新的postgres用户添加信息

  • 31

    编辑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文件重新设置为默认值 .

  • 10

    如果您尝试以postgres用户身份登录postgres shell,则可以使用以下命令 .

    切换到postgres用户

    # su - postgres
    

    登录psql

    # psql
    

    希望有所帮助

  • 0

    尽量不要使用-W参数并将密码留空 . 有时用户使用无密码创建 .

    如果这不起作用重置密码 . 有几种方法可以做到这一点,但这适用于许多系统:

    $ su root
    $ su postgres
    $ psql -h localhost
    > ALTER USER postgres with password 'YourNewPassword';
    
  • 12

    对于那些第一次使用它并且没有关于密码的信息的人,他们可以遵循以下步骤(假设您使用的是ubuntu):

    • /etc/postgresql/9.x/main 中打开文件 pg_hba.conf
    sudo vi pg_hba.conf
    

    2.编辑以下行

    local   all             postgres                                peer
    

    local   all             postgres                                trust
    
    • 重启服务器
    sudo service postgresql restart
    
    • 最后您无需密码即可登录,如图
      Finally you can login without need of a password as shown in the figure
      所示

    Ref here for more info

  • 562

    根据经验: YOU SHOULD NEVER EVER SET A PASSWORD FOR THE POSTGRES USER .

    如果您需要pgAdmin的超级用户访问权限,请创建另一个超级用户 . 这样,如果该超级用户的凭据被泄露,您可以始终ssh到实际的数据库主机并手动删除超级用户

    sudo -u postgres -c "DROP ROLE superuser;"
    
  • 4

    我只想补充一点,您还应该检查您的密码是否已过期 .

    有关详细信息,请参阅Postgres password authentication fails .

  • -1

    以下是我尝试登录的一些组合:

    # 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
    
  • 9

    我有类似的问题 . Ubuntu让我在控制台登录,并为超级用户提供任何密码 . 除非我在psql line命令中使用-h localhost连接 .

    我也观察到“localhost:8080 / MyJSPSiteLogIn” - 显示:致命:用户“user”的身份验证错误 .

    pg_hba.conf没问题 .

    我注意到有两个版本的postgres在同一个服务中运行 .

    解决 - 卸载inutil版本 .

  • 0

    我希望这会帮助你缩短时间 . 您可以使用bellow命令更改postgres sql的密码 .

    命令

    sudo -u postgres psql

    接下来您可以更新密码

    命令

    Alter user postgres password 'YOUR_NEW_PASSWORD';

相关问题