使用DMS迁移数据库时PostgreSQL目标端点测试失败求助
问题原因与解决方案
这个错误直接指向PostgreSQL的连接控制策略配置问题,核心是pg_hba.conf文件中未为DMS端点的IP(172.31.25.29)、指定用户(postgre)和数据库(postgre)配置允许无加密连接的规则。
解决步骤:
定位并编辑
pg_hba.conf文件- 该文件通常位于PostgreSQL的数据目录下,常见路径:
- Linux:
/var/lib/postgresql/<版本号>/main/pg_hba.conf - Windows:
C:\Program Files\PostgreSQL\<版本号>\data\pg_hba.conf
- Linux:
- 打开文件后,添加一条匹配规则:
参数说明:host postgre postgre 172.31.25.29/32 scram-sha-256host:允许TCP/IP连接- 第一个
postgre:目标数据库名称 - 第二个
postgre:用于连接的用户名 172.31.25.29/32:精确匹配DMS端点的IP(若需放开整个IP段,可改为172.31.0.0/16这类格式)scram-sha-256:PostgreSQL推荐的加密认证方式;若必须使用无加密连接(生产环境不建议),可替换为trust或password,但需注意安全风险。
- 该文件通常位于PostgreSQL的数据目录下,常见路径:
检查PostgreSQL监听配置
- 打开
postgresql.conf文件,确认listen_addresses参数设置为允许外部IP访问:listen_addresses = '*'
- 打开
重启PostgreSQL服务
- 修改配置后需重启服务生效:
- Linux:
sudo systemctl restart postgresql - Windows:在系统服务管理器中重启PostgreSQL服务
- Linux:
- 修改配置后需重启服务生效:
重新测试DMS端点
- 返回AWS DMS控制台,重新测试PostgreSQL目标端点,验证连接是否成功。
若PostgreSQL部署在AWS RDS上,无需直接编辑
pg_hba.conf,可通过RDS控制台的参数组修改rds.allowed_hosts参数,添加DMS端点的IP(或按需放开范围),之后重启RDS实例即可。
内容的提问来源于stack exchange,提问作者Vivek Reddy
相关产品推荐
相关产品推荐

