PostgreSQL流复制pg_basebackup报错:Ident认证失败求助
PostgreSQL流复制pg_basebackup认证失败解决方法
问题根源
PostgreSQL的pg_hba.conf规则是从上到下按顺序匹配的,你的配置里host replication all 0.0.0.0/0 ident这条通用规则,排在针对replica_user的md5认证规则前面。备库发起连接时,先命中了这条ident认证规则,而非你期望的md5规则,这才导致了Ident认证失败的错误。
解决步骤
调整pg_hba.conf规则顺序
编辑主库的pg_hba.conf,把host replication replica_user xx.xx.xx.xxx/16 md5这条规则,移动到host replication all 0.0.0.0/0 ident的上方,确保更精确的用户+IP规则优先匹配。重新加载主库配置
在主库执行配置重载命令,让修改生效:# 用pg_ctl重载(替换为你的主库数据目录) pg_ctl reload -D /path/to/main/postgresql/data # 或者用systemd管理的服务命令 systemctl reload postgresql重新执行pg_basebackup
回到备库,再次运行你的备份命令:pg_basebackup -h xx.xx.xx.xxx -D /var/lib/pgsql/data/ -U replica_user -P -v -R -X stream -C -S slaveslot1
额外检查项(可选)
- 确认
replica_user已拥有replication权限:ALTER ROLE replica_user REPLICATION; - 确认主库
postgresql.conf中wal_level设置为replica或更高(如logical):wal_level = replica
内容的提问来源于stack exchange,提问作者Ankita Singh
相关产品推荐
相关产品推荐

