PostgreSQL服务状态疑问及pgAdmin连接Ident认证失败求助
问题解答
一、服务状态是否正常
服务显示active (running) (thawing)是正常状态。thawing是systemd的状态标识,仅表示服务从系统休眠/挂起的冻结状态恢复完成,核心的active (running)已经明确PostgreSQL服务正在正常运行,连接报错是认证配置问题,和服务运行状态无关。
二、解决Ident认证失败的连接问题
报错FATAL: Ident authentication failed for user "postgres"的根源是pg_hba.conf中当前连接规则采用了ident认证方式,该方式依赖系统用户匹配,不适合pgAdmin这类工具的密码连接场景,解决步骤如下:
确认当前生效的pg_hba.conf路径
先验证PostgreSQL实际加载的配置文件路径:psql -U postgres -c 'SHOW hba_file;'执行后会返回当前使用的
pg_hba.conf绝对路径。修改认证规则
编辑上述路径的pg_hba.conf文件,根据连接场景调整对应规则:- 本地pgAdmin连接:找到类似行
将local all postgres identident替换为md5(PostgreSQL 10及以上版本也可使用更安全的scram-sha-256):local all postgres md5 - 远程pgAdmin连接:找到类似行
同样将host all all 0.0.0.0/0 identident替换为md5或scram-sha-256:host all all 0.0.0.0/0 md5
注意:远程连接需额外确认
postgresql.conf中的listen_addresses已设置为*或包含pgAdmin所在机器的IP,否则远程请求无法到达数据库。- 本地pgAdmin连接:找到类似行
重启服务使配置生效
systemctl restart postgresql重新验证连接
在pgAdmin中重新创建连接,输入已设置的postgres用户密码,即可正常连接数据库实例。
内容的提问来源于stack exchange,提问作者techie11
相关产品推荐
相关产品推荐

