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命令打印实时错误日志,发现最初的错误提示如下:
7、聚焦第六步错误,进行密码、密码过期等检查,均无问题。
8、无意中发现有人遇到类似的问题(参考:https://blog.csdn.net/u011078141/article/details/88665952),jdbc连接Postgresql数据库时出现这个错误,用Navicat等正常,这个和用户密码认证方式有关,修改
data文件夹下的pg_hba.conf文件,设置认证方式为trust,保存重启服务后测试解决问题。
一个简单的问题花了近两天的时间才解决,这罪遭的…..
posted on 2021-01-14 10:31 jingkunliu 阅读(2806) 评论(0) 编辑 收藏 举报