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

使用Citus搭建PostgreSQL分片时citus_add_node报fe_sendauth错误

解决Citus添加Worker节点时的fe_sendauth: no password supplied错误

这个错误的核心原因是Worker节点的PostgreSQL配置要求认证,但Coordinator节点发起连接时未提供密码,同时Worker的pg_hba.conf未正确允许Coordinator的IP访问。以下是具体修改步骤:

1. 修改Worker节点的pg_hba.conf配置

找到Worker节点上的pg_hba.conf文件(常见路径:/etc/postgresql/<PostgreSQL版本>/main/pg_hba.conf或/var/lib/postgresql/<版本>/main/pg_hba.conf),添加一条规则允许Coordinator节点IP访问:

生产环境推荐(密码认证)

添加以下行,使用安全的scram-sha-256认证方式:

host    all             postgres        20.198.17.232/32        scram-sha-256
  • 20.198.17.232/32:Coordinator节点的IP地址,/32表示仅允许该单个IP
  • postgres:Citus默认使用的数据库用户
  • scram-sha-256:当前PostgreSQL推荐的密码认证算法

测试环境可选(无密码访问,不推荐生产)

如果是测试环境,可临时使用trust规则跳过认证:

host    all             postgres        20.198.17.232/32        trust

2. 配置Worker节点的Postgres用户密码(仅密码认证场景)

若使用密码认证,需确保Worker节点的postgres用户设置了密码:

sudo -i -u postgres psql -c "ALTER USER postgres WITH PASSWORD '你的安全密码';"

3. 重启Worker节点的PostgreSQL服务

修改pg_hba.conf后必须重启服务才能生效:

sudo systemctl restart postgresql

4. 在Coordinator节点重新执行添加节点命令

临时指定密码执行

PGPASSWORD='你的安全密码' sudo -i -u postgres psql -c "SELECT * from citus_add_node('20.40.43.246', 5432);"

永久免密码配置(推荐)

在Coordinator节点的postgres用户家目录创建.pgpass文件(路径:/var/lib/postgresql/.pgpass),内容为:

20.40.43.246:5432:*:postgres:你的安全密码

然后设置文件权限(必须严格限制,否则PostgreSQL会忽略):

chmod 600 /var/lib/postgresql/.pgpass
chown postgres:postgres /var/lib/postgresql/.pgpass

之后再次执行添加节点命令即可无需输入密码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:45:06