【问题标题】:password authentication failed for user "postgres" [duplicate]用户“postgres”的密码认证失败[重复]
【发布时间】:2011-10-25 16:25:52
【问题描述】:

我已成功在我的 CentOS 服务器上安装了 PostgreSQL server 8.4。 之后,我使用'postgres'用户登录CentOS服务器,但我无法运行任何命令,出现错误:

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

这里是pg_hba.conf和postgresql.conf中的一些配置:

--------------------configuration in postgresql.conf-----------
listen_addresses = '*'

--------------------configuration in pg_hba.conf---------------
local   all         all                               md5  
local   all         postgres                          md5 
host    all         all         127.0.0.1/32          md5  
host    all         all         ::1/128               md5

【问题讨论】:

    标签: database postgresql


    【解决方案1】:

    我倾向于在 pg_hba.conf 中使用以下内容:

    # Database administrative login by UNIX sockets
    local   all         postgres                          ident
    
    # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
    local   all         all                               md5
    host    all         all         127.0.0.1/32          md5
    host    all         all         ::1/128               md5
    

    这意味着一旦你成为“postgres”,你不需要密码,但你需要 sudo 权限才能成为 postgres,所以这非常安全。任何其他用户都可以使用简单的 md5 身份验证登录,这意味着您不必到处使用 sudo。这对我很有效。

    【讨论】:

      【解决方案2】:

      确保您使用 postgres PostgreSQL 帐户的密码,而不是 postgres 系统帐户。尝试在 pg_hba.conf 中使用“trust”而不是“md5”来连接到数据库并更改您的通行证。

      【讨论】:

      • postgres系统账号和postgres PostgreSQL账号有什么区别?以及如何检查我是否使用 postgres PostgreSQL 帐户?
      • 我使用了PostgreSQL账号的密码。
      • 你确定吗?你如何运行任何命令?你有使用 psql 的 shell 吗?
      • 我很确定。我使用 Putty 从 XP 桌面远程远程 Linux 服务器。我使用 PostgresSQL 帐户(postgres)登录,移动到 /opt/postgres/8.4/bin,运行命令 .createdb abc,出现错误。请注意,我在安装 PostgreSQL 8.4 之前卸载了 PostgreSQL 9.0。这是一个原因吗?
      • 不,您从不使用 PostgreSQL 帐户通过 putty 登录,您使用系统帐户(可能命名为 postgres)。然后在命令行输入“psql”,并使用 PostgreSQL 帐户登录 PostgreSQL,在 pg_hba conf 文件中使用“ident”或“trust”时可能无需提供密码。
      【解决方案3】:

      我遇到了类似的问题(相同的错误消息)。就像丹尼尔的回答一样,这是因为我混淆了:

      “postgres PostgreSQL 账号,不是 postgres 系统账号。”

      要确定 postgres 密码,只需将其更改为“123456”(或任何其他密码)

      # su postgres
      # psql -d template1
      template1=# ALTER USER postgres WITH PASSWORD '123456';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-11
        • 2013-09-04
        • 2021-01-03
        • 1970-01-01
        • 2011-12-03
        • 1970-01-01
        相关资源
        最近更新 更多