当前位置: 首页 > 知识库问答 >
问题:

PostgreSQL:pg_dump:[存档(db)]连接到数据库dbase失败: FATAL:用户postgres对等身份验证失败

张亦
2023-03-14

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

我有一句话:

host    all             all             127.0.0.1/32            md5

在/etc/postgresql/9.4/main/pg_hba.conf中,但运行时:

我得到:

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

共有3个答案

景帅
2023-03-14

我在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操作时,效果很好。

这就是全部。

我希望这有帮助

谢旻
2023-03-14

如果添加-hlocalhost不起作用,您可以尝试添加-h127.0.0.1

pg_dump -h 127.0.0.1 -U <username> -d <database_name> -W > bk_name.sql
乔俊才
2023-03-14

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

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

 类似资料:
  • 如何从管理员处访问postgres数据库? 我已更改用户的密码: 结果: 但我在管理员身上仍然会出现以下错误: 你知道为什么吗? 我有两个用户: 但是,当我使用以下命令创建用户时,我没有为其设置密码: 输出(为什么不要求密码??): 但我仍然得到管理员的错误: 编辑: 这是我的 我将更改为: 然后重启了我的机器。但还是没有运气。

  • 我安装和安装postgresql-12从这里的命令[https://www.postgresql.org/download/linux/redhat/] 然后我试图登录数据库 我弄错了 我的系统上有两个pg_hba.conf文件。我按照此处的建议检查了如下所示的身份验证设置[psql:FATAL:Ident用户“postgres”身份验证失败” /data/pg_data_dir/pg_hba.c

  • 我刚安装了Postgres。然后在我的终端中写了以下命令 postgres@user/home/user$createuser-dp CinemaHole 这是我的pg_hba.conf 请帮助我解决这个问题。

  • 身份验证设置看起来还可以,所以我不确定从这里要做什么。

  • 我有一个API在Apache堆栈上运行,使用Java。我继承了一个遗留代码库,需要找到这个错误来自哪里显然是上一个开发人员构建了一个不能工作的特性,这就是错误所在,但没有更多信息。它使用Drupal webservice模块,发送调用的代码如下所示 我可以从哪里开始寻找这个错误,或者它可能意味着什么,你有什么想法吗? 完整的堆栈跟踪如下所示::: 用户失败:null。java.lang.Unsup

  • 我第一次将应用程序部署到数字海洋,遇到了两个(可能更多)问题。 1) 在将添加到Gemfile后,我无法。我发现kgio与windows不兼容。我必须要Gemfile吗。当我通过capistrano部署时是否存在锁?我如何解决这个问题? 2)我在服务器上的postgreql上遇到身份验证问题。 我运行了这些命令(以及其他一些命令): 每次我限制部署时,我都会收到这个错误: 我尝试输入一个我知道不存