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

PGSSLMODE=allow pg_dump执行无效 连接PostgreSQL提示需SSL连接

PostgreSQL pg_dump SSL连接报错解决方案

报错核心信息:

pg_dump: error: connection to database "schema_name" failed: FATAL: SSL connection is required. Please specify SSL options and retry. FATAL: no pg_hba.conf entry for host "x.x.x.x", user "admin", database "schema_name", SSL on

1 修正客户端SSL连接参数

远程服务器强制要求SSL连接,你当前设置的PGSSLMODE=allow规则为优先尝试非SSL连接,失败才会切换SSL连接,不符合服务端要求,需调整为强制SSL模式:
调整后的命令参考:

PGSSLMODE=require pg_dump -h <远程主机地址> -p 5432 -U admin -d <你的实际数据库名> <你需要的表过滤等其他参数>

注意:原有命令缺少-U指定用户名、-d指定数据库名参数,默认会读取你当前操作系统用户名作为数据库用户名,匹配同名的默认数据库,极易出现匹配错误

2 修复服务端pg_hba.conf访问规则

第二个报错明确说明开启SSL后,你的客户端IP、用户名、目标数据库没有匹配的访问规则,需要登录PostgreSQL服务端操作:

  • 找到pg_hba.conf配置文件,常见路径为/var/lib/postgresql/<PG版本号>/main/pg_hba.conf(Debian/Ubuntu系)或/var/lib/pgsql/<PG版本号>/data/pg_hba.conf(RHEL/CentOS系)
  • 在配置文件靠前位置新增匹配规则:
    hostssl  <你的数据库名>  admin  <你的客户端IP>/32  scram-sha-256
    
    如需放开该IP下所有库所有用户的SSL访问权限,可以写成:
    hostssl  all  all  <你的客户端IP>/32  scram-sha-256
    
  • 保存配置后重载PostgreSQL服务,无需重启实例即可生效:
    数据库内执行:SELECT pg_reload_conf();
    系统级执行:systemctl reload postgresql

3 可选:客户端SSL证书配置

如果完成前两步后仍然报错,说明服务端要求验证客户端SSL证书,需要在命令中补充证书路径参数:

PGSSLMODE=verify-full PGSSLROOTCERT=<根证书路径> PGSSLCERT=<客户端公钥路径> PGSSLKEY=<客户端私钥路径> pg_dump -h <远程主机地址> -p 5432 -U admin -d <你的实际数据库名>

注意事项

  • pg_hba.conf规则按照从上到下的顺序匹配,新增的规则必须放在所有拒绝你访问的规则之前才会生效
  • 生产环境不建议配置0.0.0.0/0作为允许访问的IP段,避免数据库暴露风险
  • 如果你的客户端IP为动态IP,可以替换为对应网段,例如192.168.1.0/24

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:15:04