FATAL: Forbid remote connection with initial user.

概要

vb_ctl build 在进行增量构建(standby 模式)时,需要通过网络连接主库来拉取 WAL 日志。日志中的错误提示:

FATAL:  Forbid remote connection with initial user.

表明 openGauss 拒绝使用“初始用户”(如 omm)进行 远程 TCP 连接,这就是增量构建失败的根本原因。


1. 错误原因详解

  1. 安全策略限制
    openGauss 出于安全考虑,禁止内置的初始运维用户(例如 ommpostgres)在 TCP 网络上使用 host 方式远程连接;这种用户仅限本地 Unix 域套接字或专用通道(OpenGauss 文档)。
  2. pg_hba.conf 无匹配条目
    即使在 pg_hba.conf 中对其他用户或本地连接做了放行,遇到初始用户时,服务器在匹配到 host … initial_user 条目后会立即拒绝,不再继续其他规则(博客园)。
  3. repl_auth_mode 未设置
    日志中 “Get repl_auth_mode is and repl_uuid is” 显示增量构建工具未指定专用复制认证模式,因而默认使用初始用户。

2. 解决方案

2.1 创建专用复制用户

在主库上以足够权限但与 omm 分离的用户用于复制:

CREATE USER repl_user REPLICATION ENCRYPTED PASSWORD 'StrongP@ssw0rd';

该用户只拥有复制所需的最小权限,避免凭据泄露风险(优快云 博客)。

2.2 配置 HBA 允许远程复制

在主库的 pg_hba.conf 增加允许 repl_user 远程复制的行,例如(假设 Standby IP 为 10.10.180.211):

host    replication   repl_user    10.10.180.211/32    md5

然后重载配置:

SELECT pg_reload_conf();

即可允许通过 MD5 验证的复制连接(优快云 博客)(MogDB 文档)。

2.3 修改构建命令或配置

  • 在命令行:使用 vb_ctl build-U/-P 参数或 -C CONNECTOR 指定复制用户:

    vb_ctl build -M standby -U repl_user -P 'StrongP@ssw0rd'
    
  • postgresql.conf:将 replconninfo3(或相应 replconninfoX)更新为:

    replconninfo3 = 'user=repl_user password=StrongP@ssw0rd host=10.10.180.215 port=21800 ...'
    

    并重启或重新运行 vb_ctl build,即可使用专用用户完成增量构建(优快云 博客)。


3. 参考资料

  1. Configuring a Remote Connection — openGauss 文档:解释“禁止初始用户远程连接”及如何在 pg_hba.conf 中配置 initial_user(OpenGauss 文档)
  2. Connecting to a Database — openGauss 文档:说明初始用户仅可在本地使用,否则会报 Forbid remote connection with trust method!(OpenGauss 文档)
  3. “Forbid remote connection with trust method!” — 优快云 博客:安全策略解析及改为 MD5 认证示例(优快云 博客)
  4. MogDB 3.0.0 gs_ctl build 错误 — 博主分享:在 gs_ctl build 时需用专用用户,否则会遇同样的“initial user”拒绝(优快云 博客)
  5. FATAL: Forbid remote connection with initial user — 墨天轮社区:示例日志与解决方法(墨天轮)
  6. openGauss 安全认证 — 知乎专栏:对 initial_user 远程连接限制的源码和安全架构(知乎专栏)
  7. CREATE ROLE … REPLICATION — PostgreSQL 文档:创建复制用户示例(优快云 博客)
  8. pg_hba.conf 匹配机制 — PostgreSQL 文档:访问控制和认证流程
  9. PostgreSQL & MogDB HBA 配置 — MogDB Docs:同样的流复制 HBA 配置示例(MogDB 文档)
  10. StackOverflow:“no pg_hba.conf entry for replication connection” — 深入解析
"Connection refused fatal: Could not read from remote repository." 这个错误是由于无法连接到远程存储库导致的。根据引用、引用和引用的描述,这个问题通常是由于以下几个可能的原因引起的: 1. 访问权限问题:请确保你有正确的访问权限来访问远程存储库。你可以检查你的 SSH 密钥或用户名和密码是否正确。如果你没有正确的访问权限,你需要联系存储库的所有者来获取相应的权限。 2. 网络连接问题:"Connection refused" 错误可能是由于网络连接问题导致的。你可以尝试通过检查你的网络连接来解决这个问题。确保你的网络连接正常,并且没有任何防火墙或代理服务器阻止你连接到远程存储库。 3. 存储库不存在:如果你在错误消息中看到 "Please make sure you have the correct access rights and the repository exists." 这句话,那么有可能是因为你尝试访问的存储库不存在或被删除了。请确保你输入了正确的存储库名称并且它确实存在。 综上所述,要解决这个问题,你可以按照以下步骤进行操作: 1. 检查你的访问权限:确保你有正确的访问权限来访问远程存储库。你可以检查你的 SSH 密钥或用户名和密码是否正确。如果你不确定,可以联系存储库的所有者以获取相关信息。 2. 检查网络连接:确认你的网络连接正常,并且没有任何防火墙或代理服务器阻止你连接到远程存储库。你可以尝试使用其他网络连接或与网络管理员联系以解决网络问题。 3. 确认存储库存在:检查你正在访问的存储库是否真的存在。确保你输入了正确的存储库名称。如果存储库不存在,你需要联系存储库的所有者以获取正确的存储库信息。 希望这些解决方法能够帮助你解决 "Connection refused fatal: Could not read from remote repository." 这个问题。如果问题仍然存在,请提供更多详细信息以便我们提供更具体的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值