ITPub博客

首页 > 数据库 > 数据库开发技术 > YashanDB|使用 Kettle 同步 PostgreSQL 数据时报错:pg_hba.conf 无法识别连接?

YashanDB|使用 Kettle 同步 PostgreSQL 数据时报错:pg_hba.conf 无法识别连接?

原创 数据库开发技术 作者:makabala 时间:2025-05-08 20:17:29 0 删除 编辑

【问题场景】

在使用  Kettle(Pentaho Data Integration) 工具,将数据从 PostgreSQL 同步至 YashanDB 的过程中,任务启动时报如下错误:

致命错误: 没有用于主机 "10.9.7.54", 用户 "postgres", 数据库 "dev", no encryption 的 pg_hba.conf 记录
错误初始化步骤[source.public.T1]

尽管目标 YashanDB 连接正常,源端 PostgreSQL 却无法建立连接,导致同步失败。

【问题分析】

这是 PostgreSQL 的连接认证机制引发的阻断。

pg_hba.conf 是什么?

这是 PostgreSQL 的核心认证配置文件, 用于控制数据库接受哪些主机、用户、认证方式的连接请求。

上述错误的本质是:当前 pg_hba.conf 文件中, 缺失了允许 Kettle 所在机器访问的规则,系统无法识别如何进行认证,因此连接被拒绝。

【解决方法】

需要为 PostgreSQL 明确添加一条允许目标主机连接的规则:

步骤如下:

1、打开 PostgreSQL 的 pg_hba.conf 文件,一般路径为:

/home/postgres/pgdata/pg_hba.conf

2、添加如下配置(请根据实际 IP 调整):

host all all 10.9.7.54/32 md5

含义说明:

host:允许 TCP/IP 连接;

all all:任意数据库、任意用户;

10.9.7.54/32:只允许该主机 IP;

md5:使用密码(MD5)认证方式。

3、修改完成后,重启 PostgreSQL 服务以生效:

pg_ctl -D /home/postgres/pgdata restart

【通用建议】

【适用版本】

PostgreSQL 所有主流版本

Kettle 8.x 及以上版本

YashanDB 无需修改,仅源端控制连接权限

【总结】

报错关键点在 PostgreSQL;

排查重点在 pg_hba.conf 文件;

添加 IP 白名单规则 + 选择合适认证方式,即可解决。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70045450/viewspace-3083649/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2025-04-10

  • 博文量
    231
  • 访问量
    229281