這篇文章主要講解了“CDSW數(shù)據(jù)庫登錄報錯psql: FATAL: role "postgres" does not exist怎么解決”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“CDSW數(shù)據(jù)庫登錄報錯psql: FATAL: role "postgres" does not exist怎么解決”吧!
公司主營業(yè)務(wù):網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出石拐免費做網(wǎng)站回饋大家。
測試環(huán)境
1.Redhat7.4
2.CDH6.2.0
3.CDSW1.5.0
報錯信息“psql: FATAL: role "postgres" does not exist”
通過上述異常分析,F(xiàn)ayson猜測可能是由于CDSW升級后考慮到PG數(shù)據(jù)庫的安全問題,從而將postgres用戶的role刪除了。像前面通過訪問后臺數(shù)據(jù)庫查看CDSW用戶審計日志一樣就屬于非法操作,可能就是為了防止Fayson這種不合常規(guī)的操作。
既然不能夠通過切換到postgres用戶直接登錄PG數(shù)據(jù)庫,那Fayson就通過賬號密碼的方式訪問CDSW的數(shù)據(jù)庫。通過分析發(fā)現(xiàn)CDSW的服務(wù)是由多個docker容器提供的服務(wù)組成(這里表達可能不夠?qū)I(yè)),F(xiàn)ayson找到提供Web訪問界面的docker容器,Web界面顯示的大部分信息都存儲在數(shù)據(jù),那同樣可以通過在Web服務(wù)中找到訪問CDSW數(shù)據(jù)庫的方法(即賬號和密碼等信息)。
1.通過如下docker命令找到正在運行的Web容器
[root@cdsw postgres-data]# docker ps |grep web
如上截圖顯示有3個Web容器運行,主要是高可用的模式,所以我們會看到有三個Docker容器運行。
2.使用如下命令進入Web容器
[root@cdsw postgres-data]# docker exec -i -t c972bbc1b3bc /bin/bash
3.在Web的容器中的環(huán)境變量中找到了訪問CDSW數(shù)據(jù)庫的賬號密碼等信息
cdsw@web-bd545c85b-n4488:/app/web$ echo $POSTGRESQL_USER
cdsw@web-bd545c85b-n4488:/app/web$ echo $POSTGRESQL_PASS
cdsw@web-bd545c85b-n4488:/app/web$ echo $POSTGRESQL_DB
cdsw@web-bd545c85b-n4488:/app/web$ echo $DB_IP
4.在當前容器中使用psql客戶端遠程訪問CDSW數(shù)據(jù)
cdsw@web-bd545c85b-n4488:/app/web$ /usr/lib/postgresql/9.4/bin/psql -U sense -W -h 100.77.0.128
如上圖顯示,我們又成功的訪問到CDSW數(shù)據(jù)庫了。
感謝各位的閱讀,以上就是“CDSW數(shù)據(jù)庫登錄報錯psql: FATAL: role "postgres" does not exist怎么解決”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對CDSW數(shù)據(jù)庫登錄報錯psql: FATAL: role "postgres" does not exist怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!