一、環(huán)境 操作系統(tǒng):Windows Server 2008 R2 數(shù)據(jù)庫:PostgreSQL 9.2 + PostgreSQL 11.4 (因應(yīng)用特殊需求,使用了兩個(gè)版本數(shù)據(jù)庫) 應(yīng)用:Tomcat 8.5.51 二、問題描述 現(xiàn)場一般對(duì)于同一應(yīng)用部署有測試、正式兩套,在測試環(huán)境運(yùn)行正常的系統(tǒng),正式環(huán)境部署后,系統(tǒng)內(nèi)數(shù)據(jù)均展示。 三、解決過程 1、查看后臺(tái)錯(cuò)誤日志,發(fā)現(xiàn)Windows系統(tǒng)Tomcat日志刷新太快,最開始是的錯(cuò)誤日志都刷過去了,后面的日志也沒有多少參考價(jià)值,未發(fā)現(xiàn)問題。 2、切換正式、測試兩套環(huán)境所連數(shù)據(jù)庫,確定為數(shù)據(jù)庫問題,應(yīng)用部署包正常。 3、檢查正式數(shù)據(jù)庫主要表,無缺失,可以正常訪問。 4、通過fiddler跟蹤數(shù)據(jù)調(diào)取接口,然后使用postman進(jìn)行測試,發(fā)現(xiàn)測試環(huán)境有數(shù)據(jù)返回,正式環(huán)境返回查詢成功但無實(shí)際數(shù)據(jù)返回。這一步其實(shí)比較誤導(dǎo)人,不清楚為啥根本沒有連接進(jìn)入數(shù)據(jù)庫還會(huì)返回查詢成功的提示。 5、找到第四步接口的具體執(zhí)行SQL,通過Navicat連接數(shù)據(jù)庫執(zhí)行,正式測試均可以返回正常結(jié)果(比較頭大,按理說正式環(huán)境應(yīng)該出錯(cuò)才對(duì)呀,咋不按套路出牌,不講武德呀….)。 6、回歸第一步,鼓搗了一下日志輸出不行,直接將文件復(fù)制到linux環(huán)境下,通過tail命令打印實(shí)時(shí)錯(cuò)誤日志,發(fā)現(xiàn)最初的錯(cuò)誤提示如下: 7、聚焦第六步錯(cuò)誤,進(jìn)行密碼、密碼過期等檢查,均無問題。 8、無意中發(fā)現(xiàn)有人遇到類似的問題(參考:https://blog.csdn.net/u011078141/article/details/88665952),jdbc連接Postgresql數(shù)據(jù)庫時(shí)出現(xiàn)這個(gè)錯(cuò)誤,用Navicat等正常,這個(gè)和用戶密碼認(rèn)證方式有關(guān),修改 data文件夾下的pg_hba.conf文件,設(shè)置認(rèn)證方式為trust,保存重啟服務(wù)后測試解決問題。 一個(gè)簡單的問題花了近兩天的時(shí)間才解決,這罪遭的….. |
|