您好,登錄后才能下訂單哦!
這篇文章主要講解了“CDSW數據庫登錄報錯psql: FATAL: role "postgres" does not exist怎么解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“CDSW數據庫登錄報錯psql: FATAL: role "postgres" does not exist怎么解決”吧!
測試環境
1.Redhat7.4
2.CDH6.2.0
3.CDSW1.5.0
報錯信息“psql: FATAL: role "postgres" does not exist”
通過上述異常分析,Fayson猜測可能是由于CDSW升級后考慮到PG數據庫的安全問題,從而將postgres用戶的role刪除了。像前面通過訪問后臺數據庫查看CDSW用戶審計日志一樣就屬于非法操作,可能就是為了防止Fayson這種不合常規的操作。
既然不能夠通過切換到postgres用戶直接登錄PG數據庫,那Fayson就通過賬號密碼的方式訪問CDSW的數據庫。通過分析發現CDSW的服務是由多個docker容器提供的服務組成(這里表達可能不夠專業),Fayson找到提供Web訪問界面的docker容器,Web界面顯示的大部分信息都存儲在數據,那同樣可以通過在Web服務中找到訪問CDSW數據庫的方法(即賬號和密碼等信息)。
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的容器中的環境變量中找到了訪問CDSW數據庫的賬號密碼等信息
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數據
cdsw@web-bd545c85b-n4488:/app/web$ /usr/lib/postgresql/9.4/bin/psql -U sense -W -h 100.77.0.128
如上圖顯示,我們又成功的訪問到CDSW數據庫了。
感謝各位的閱讀,以上就是“CDSW數據庫登錄報錯psql: FATAL: role "postgres" does not exist怎么解決”的內容了,經過本文的學習后,相信大家對CDSW數據庫登錄報錯psql: FATAL: role "postgres" does not exist怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。