You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL 14升级后pg_dump备份失败(无密码报错)问题求助

PostgreSQL 14备份失败问题解决方法

问题描述

Speedy Net项目原使用PostgreSQL 13,执行备份命令:

pg_dump -U postgres -h localhost "speedy_net" | gzip > <file_name>.sql.gz

可正常完成备份。升级至Ubuntu 22.04.1 LTS + PostgreSQL 14后,数据库恢复正常但备份失败,报错:

pg_dump: error: connection to server at "localhost" (::1), port 5432 failed: fe_sendauth: no password supplied

手动执行备份命令时要求输入密码,但postgres用户无密码,且PostgreSQL 13版本无需密码即可备份。

原因分析

对比PostgreSQL 13与14的pg_hba.conf配置:

  • PostgreSQL 13中IPv6本地连接(::1/128)采用md5认证,IPv4本地连接(127.0.0.1/32)采用trust认证;
  • PostgreSQL 14中IPv6本地连接改为scram-sha-256认证,且系统解析localhost时优先使用IPv6地址::1;
  • 由于postgres用户未设置适配scram-sha-256的密码,导致通过IPv6连接时触发认证失败。

解决方案

方法1:使用Unix域套接字连接(推荐)

去掉备份命令中的-h localhost参数,pg_dump默认会使用Unix域套接字连接,对应pg_hba.conf中的local规则(local all postgres peer),无需密码即可认证:

# 以postgres系统用户执行
pg_dump -U postgres "speedy_net" | gzip > <file_name>.sql.gz

# 以root用户执行时,需切换到postgres身份
sudo -u postgres pg_dump "speedy_net" | gzip > <file_name>.sql.gz

方法2:调整pg_hba.conf的IPv6认证规则

修改PostgreSQL 14的/etc/postgresql/14/main/pg_hba.conf,将IPv6本地连接的认证方式改为trust或peer:

# 将原行
host    all             all             ::1/128                 scram-sha-256
# 修改为(二选一)
host    all             all             ::1/128                 trust  # 无需认证,安全性较低
# 或
host    all             all             ::1/128                 peer   # 依赖系统用户与数据库用户同名认证

修改后重启PostgreSQL服务生效:

sudo systemctl restart postgresql

方法3:给postgres用户设置scram-sha-256密码

若需保留scram-sha-256认证方式,可给postgres用户设置密码:

  1. 切换到postgres系统用户并进入psql:
sudo -u postgres psql
  1. 设置密码(替换为安全密码):
ALTER USER postgres WITH PASSWORD 'your_secure_password';
  1. 退出psql:
\q
  1. 可选:配置~/.pgpass文件实现免密备份,文件格式:
localhost:5432:speedy_net:postgres:your_secure_password

设置文件权限:

chmod 600 ~/.pgpass

关于密码修改的说明

  • 若采用方法1(Unix套接字连接),无需修改密码,且安全性最高;
  • 若需保留-h localhost参数,可选择方法2(调整认证规则,安全性较低)或方法3(设置密码+pgpass,安全性较高);
  • 生产环境优先推荐方法1或方法3。

内容的提问来源于stack exchange,提问作者Uri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 03:54:23