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

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

概述我正在尝试将我的Postgres数据库备份到另一台服务器,但我一直被拒绝访问. 我的pg_hba.conf文件如下所示: # DO NOT DISABLE!# If you change this first entry you will need to make sure that the# database superuser can access the database using s 我正在尝试将我的Postgres数据库备份到另一台服务器,但我一直被拒绝访问.

我的pg_hba.conf文件如下所示:

# DO NOT disABLE!# If you change this first entry you will need to make sure that the# database superuser can access the database using some other method.# Noninteractive access to all databases is required during automatic# maintenance (custom daily cronjobs,replication,and similar tasks).## Database administrative login by Unix domain socketlocal   all             postgres                                peer# TYPE  DATABASE        USER            ADDRESS                 METHOD# "local" is for Unix domain socket connections onlylocal   all             all                                     peer# IPv4 local connections:host    all             all             127.0.0.1/32            md5# IPv6 local connections:host    all             all             ::1/128                 md5# Allow replication connections from localhost,by a user with the# replication privilege.#local   replication     postgres                                peer#host    replication     postgres        127.0.0.1/32            md5#host    replication     postgres        ::1/128                 md5

如果我将postgres设置从PEER更改为TRUST,我可以备份代码,但网站无法再访问数据库(关于SSL错误,我知道这不是问题).

当我保持原样,PEER,服务器工作 – PHP可以访问数据库 – 但我在尝试运行备份时遇到错误:

根> pg_dump -U postgres tablename> TEST.sql

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

PHP Apache Web站点使用适当的用户名和密码.

备份脚本如下所示:pg_dump -U postgres tablename> TEST.sql

我怎样才能满足网站和备份脚本,所以我可以同时运行这两个?

尝试整个脚本是这样的:@H_502_20@ssh SERVER“pg_dump -U postgres tablename | gzip -c”> /backup/sqlbackup.sql.gz

取自服务器故障:ssh remote command-fu

如果你的PHP Apache网站与peer一起使用,请保留它,让我们来处理它.

1.第一种方法:

由于身份验证是基于对等的,因此您必须使用-h选项指定主机名(通常为localhost):

ssh server "pg_dump -h localhost -U postgres | gzip -c" >/backup/sqlbackup.sql.gz

这里的主要问题是将提示您输入postgres用户密码.这是备份自动化的问题.

您可以参考this以避免提示输入密码.但我会描述:

>在$HOME中创建一个名为.pgpass的隐藏文件@H_502_20@>执行chmod 600 .pgpass@H_502_20@>编辑文件.pgpass并添加以下行:localhost:5432:postgres:postgres:password

2.第二种方法:

您可以为备份添加特定角色并信任它.

在Postgres中创建备份角色:

CREATE RolE backup WITH LOGIN SUPERUSER PASSWORD 'password'

编辑文件pg_hba.conf,添加角色备份并信任它:

# Database administrative login by Unix domain socketlocal   all             postgres                                peerlocal   all             backup                                  trust

重启postgresql

然后您应该能够使用以下内容运行备份:

ssh server "pg_dump -U backup postgres | gzip -c" >/backup/sqlbackup.sql.gz
总结

以上是内存溢出为你收集整理的postgresql – pg_dump:[archiver(db)]与数据库的连接失败:致命:用户“postgres”的对等身份验证失败全部内容,希望文章能够帮你解决postgresql – pg_dump:[archiver(db)]与数据库的连接失败:致命:用户“postgres”的对等身份验证失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1168724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存