【问题标题】:PostgreSQL: pg_dump: [archiver (db)] connection to database "dbase" failed: FATAL: Peer authentication failed for user "postgres"PostgreSQL:pg_dump:[archiver (db)] 与数据库“dbase”的连接失败:致命:用户“postgres”的对等身份验证失败
【发布时间】:2016-05-20 18:50:04
【问题描述】:

已解决:我在家中添加了 .pgpass。

我有电话:

host    all             all             127.0.0.1/32            md5

在 /etc/postgresql/9.4/main/pg_hba.conf 但是当我运行时:

pg_dump -U postgres dbase -f dbase.sql

我明白了:

pg_dump: [archiver (db)] 连接到数据库“dbase”失败:
致命:用户“postgres”的对等身份验证失败

【问题讨论】:

  • pg_dump -U postgres -h localhost dbase -f dbase.sql
  • “对等身份验证”意味着它将您的数据库用户名与您的 Linux 用户名进行比较。如果您以postgres 登录,它应该可以工作。您可能不想在pg_hba 中使用md5 规则,因为postgres 数据库用户通常没有密码。
  • @wildplasser 总结了所有事情。
  • 在windows中C:\Users\Amal>pg_dump -U postgres bank > D:\pg_dump\dbase.sql

标签: postgresql


【解决方案1】:

你遇到的问题是,如果你不定义主机,你的系统会决定。

显式添加“-h localhost”,这将修复它

【讨论】:

  • 救了我的命。我一直想要一个好的解决方案,比psql "dbname='<database_name>' user='<user_name>' password='<user_password>' host='localhost'" -f "<path_to_query_in_sql>"
【解决方案2】:

如果添加 -h localhost 不起作用,您可以尝试添加 -h 127.0.0.1

pg_dump -h 127.0.0.1 -U <username> -d <database_name> -W > bk_name.sql

【讨论】:

    【解决方案3】:

    我在 Ubuntu 20.04 上处理 PostgreSQL 数据库时遇到了这个问题。

    所有 PostgreSQL 配置都很好,并且运行良好。

    问题是我错误地将 PostgreSQL 文件和服务器上所有其他文件的所有权修改为名为 deploy 的用户。

    所以每次我尝试运行 pg_dump 操作时都会失败并出现错误:

    pg_dump: [archiver (db)] connection to database "dbase" failed:
    FATAL: Peer authentication failed for user "postgres"
    

    我是这样解决的

    我在新的 VPS 上安装并设置了另一个 PostgreSQL 数据库服务器。

    接下来,我对旧服务器中的 PostgreSQL 数据目录进行了备份:

    sudo cp /var/lib/postgresql/12/main /var/lib/postgresql/12/main.bk
    

    并将备份复制到新服务器中,然后用它替换新服务器中的 PostgreSQL 数据目录。那就是我将新服务器中的 PostgreSQL 数据目录移出,并将旧服务器的 PostgreSQL 数据目录备份复制到其中。您可能需要在某些时候切换到 PostgreSQL 用户 (sudo -u postgres -i) 才能执行某些操作:

    sudo systemctl stop postgresql
    sudo mv /home/your-username/main.bk /var/lib/postgresql/12/main
    sudo -u postgres -i
    sudo mv /var/lib/postgresql/12/main /var/lib/postgresql/12/main.bk2
    sudo mv /var/lib/postgresql/12/main.bk /var/lib/postgresql/12/main
    

    最后,我在新服务器中重启了PostgreSQL数据库服务器:

    sudo systemctl restart postgresql
    

    这次我尝试在新服务器上运行pg_dump 操作,它运行良好。

    就是这样。

    我希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 2011-02-25
      • 1970-01-01
      • 2016-03-01
      • 1970-01-01
      • 2020-11-30
      • 1970-01-01
      • 2013-07-23
      • 2013-06-30
      • 2015-08-29
      相关资源
      最近更新 更多