Dir*_*dNJ 3 postgresql authentication backup configuration
我可以毫无问题地远程连接到我的数据库,无论是从我们的网络服务器上的 PHP 脚本还是使用 PGAdmin3。
不幸的是,当我尝试在服务器本身上本地运行 pg_dump 备份时,我得到:
pg_dump --username=postgres -W omega | gzip > omega.10.10.13.gz
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)pg_dump: [archiver (db)] connection to database "omega" failed: FATAL: Peer authentication failed for user "postgres"
以前我的数据库根本没有密码,但为了尝试解决这个问题,我实际上给了 postgres 用户一个密码。仍然没有骰子,对等身份验证每次都失败。
这是我的 pg_hba.conf 文件中的设置...请告诉我可以做什么来解决这个问题。真的想在我的数据库上运行一些备份。
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local 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
host all all 70.89.205.250/24 md5
host all all 23.21.112.163/24 md5
host all all 24.188.1.163/24 md5
Run Code Online (Sandbox Code Playgroud)
小智 5
这是 Postgres 客户端的一个奇怪的怪癖,远程或脚本中的客户端通常使用其地址连接到服务器,然后通过密码进行身份验证,但是当您通过命令行客户端从同一台计算机连接时,它会尝试使用对等身份验证,您会收到该错误。我从这个答案中发现,您可以通过简单地指定主机来修复它:
pg_dump -h 127.0.0.1 --username=postgres -W omega | gzip > omega.10.10.13.gz
Run Code Online (Sandbox Code Playgroud)
这就是 PHP 脚本在内部所做的事情。我更喜欢这个修复,因为它不会扰乱任何全局配置,并且我认为您可能也想了解它。
归档时间: |
|
查看次数: |
33976 次 |
最近记录: |