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

Patroni集群新增节点后pg_hba.conf认证失败问题求助

解决Patroni新增节点连接Leader时的pg_hba认证错误

从你提供的日志和配置来看,核心问题是新增节点(10.150.33.112)尝试连接Leader(10.150.33.13)时,Leader的pg_hba.conf里没有对应的允许条目——尽管你已经在Patroni配置中添加了该规则。下面是几个针对性的排查和解决思路:

1. 验证Leader节点的pg_hba.conf是否已同步Patroni配置

Patroni会自动管理PostgreSQL的pg_hba.conf,但偶尔可能出现配置未同步的情况:

  • 登录到Leader节点(nsdb03/10.150.33.13),找到PostgreSQL的pg_hba.conf文件(常见路径如/var/lib/postgresql/<你的PG版本>/main/pg_hba.conf,或根据你的部署调整)。
  • 检查文件中是否存在这条规则:host replication repl 10.150.33.112/24 md5。
  • 如果没有,执行patronictl reload <你的集群名称>触发Patroni同步配置,或者重启Leader节点的Patroni服务:systemctl restart patroni。

2. 确认Patroni配置的正确性与加载状态

  • 检查新增节点(10.150.33.112)上的Patroni配置文件权限:确保Patroni运行用户(通常是patroni)有读取该配置的权限,避免因权限问题导致配置未被加载。
  • 仔细核对Patroni配置中的pg_hba条目:确认112节点的IP和掩码(10.150.33.112/24)没有拼写错误,比如是否把112写成了其他数字。

3. 检查Leader节点的PostgreSQL监听配置

如果Leader的PostgreSQL没有监听10.150.33.13这个IP,即使pg_hba允许也会出现连接问题:

  • 查看Leader节点的postgresql.conf中的listen_addresses参数,确认它包含10.150.33.13或设置为*(允许所有IP监听)。
  • 如果需要调整,可以在Patroni配置的postgresql.parameters中添加listen_addresses: '*',然后重新加载配置。

4. 验证Repl用户的权限

确保repl用户拥有正确的复制权限:

  • 在Leader节点执行SQL查询:
    SELECT rolname, rolreplication FROM pg_roles WHERE rolname='repl';
    
  • 确认返回的rolreplication值为true,如果不是,执行ALTER ROLE repl WITH REPLICATION;赋予权限。

5. 排查网络与防火墙干扰

虽然日志明确是pg_hba认证错误,但还是可以快速验证网络连通性:

  • 在新增节点执行nc -zv 10.150.33.13 5432或telnet 10.150.33.13 5432,确认5432端口是否能正常访问,避免因防火墙规则阻断连接导致的间接认证报错。

内容的提问来源于stack exchange,提问作者Larry G. Wapnitsky

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 22:32:39