FATAL: password authentication failed for user "XXX"

一、环境

操作系统:Windows Server 2008 R2

数据库:PostgreSQL 9.2 + PostgreSQL 11.4  (因应用特殊需求,使用了两个版本数据库)

应用:Tomcat 8.5.51

二、问题描述

现场一般对于同一应用部署有测试、正式两套,在测试环境运行正常的系统,正式环境部署后,系统内数据均展示。

三、解决过程

1、查看后台错误日志,发现Windows系统Tomcat日志刷新太快,最开始是的错误日志都刷过去了,后面的日志也没有多少参考价值,未发现问题。

2、切换正式、测试两套环境所连数据库,确定为数据库问题,应用部署包正常。

3、检查正式数据库主要表,无缺失,可以正常访问。

4、通过fiddler跟踪数据调取接口,然后使用postman进行测试,发现测试环境有数据返回,正式环境返回查询成功但无实际数据返回。这一步其实比较误导人,不清楚为啥根本没有连接进入数据库还会返回查询成功的提示。

5、找到第四步接口的具体执行SQL,通过Navicat连接数据库执行,正式测试均可以返回正常结果(比较头大,按理说正式环境应该出错才对呀,咋不按套路出牌,不讲武德呀….)。

6、回归第一步,鼓捣了一下日志输出不行,直接将文件复制到linux环境下,通过tail命令打印实时错误日志,发现最初的错误提示如下:

image

7、聚焦第六步错误,进行密码、密码过期等检查,均无问题。

8、无意中发现有人遇到类似的问题(参考:https://blog.csdn.net/u011078141/article/details/88665952),jdbc连接Postgresql数据库时出现这个错误,用Navicat等正常,这个和用户密码认证方式有关,修改

data文件夹下的pg_hba.conf文件,设置认证方式为trust,保存重启服务后测试解决问题。

image

一个简单的问题花了近两天的时间才解决,这罪遭的…..

posted on 2021-01-14 10:31  jingkunliu  阅读(2806)  评论(0编辑  收藏  举报

导航