작성
·
6.9K
13
기선님께서 올려주신 docker로 postgres사용하는 부분 중에서, su - postgres 명령어를 입력하고 psql spring boot를 하게되면, FATAL: role "postgres" does not exist라는 응답이 나오던데, 기선님도 이런 오류가 있으셨나요?
이 오류가 발생해서 여러가지 찾아본 결과 해결방법으로는 root에서 psql -U keesun springboot를 하게되면, DB에 연결이 되는걸 확인할 수 있었습니다.
추가로, Windows유저는 l을 해서 DB를 확인하면, OWNER가 docker run에서 POSTGRES_USER에서 설정한 유저로 바뀌어 있는 걸 확인했습니다.
혹시, Windows 10으로 이 강의를 보시면서, docker for windows를 통해 docker를 실습하시려는 분들은 이 오류가 발생하면 위에 해결방법을 활용해주세요.
답변 6
6
https://yeojin-dev.github.io/blog/postgresql-ubuntu/
이 블로그에 나와있는 하단의 명령어를 통해서 해결 가능합니다.
psql --username=postgres --dbname=postgres
5
사용자명은 PostgreSQL을 설치 한 직후에는 수퍼 유저로 postgres 역할 밖에 생성되지 않으므로 -U postgres로 지정한다. 사용자명을 생략하게 되면 OS의 사용자명이 사용된다.
라고 문서에 쓰여있네요
default 가 os 사용자명으로 잡히기 때문인 것 같습니다. 따라서 os 사용자명과 POSTGRES_USER 에 입력한 값이 일치하지 않다면 psql -U (POSTGRES_USER 에 입력한 값) (DBname)을 입력해주어야하는 것 같습니다
2
맥북 사용자인데 docker 실행 후
error: could not connect to server: FATAL: role "postgres" does not exist
에러가 계속 발생하더라구요. PostgreSQL 버전은 12.0 이었구요.
저같은 경우 기선님하고 같은 버전으로 사용하니 해결되었습니다.
docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=keesun -e POSTGRES_DB=springboot --name postgres_boot -d postgres:9.6.2
2
오늘 오전에 비슷한 질문을 받아서 답변을 남겨드렸는데 그 질문이 없어졌네요.
저는 맥에서 촬영을 헀을 때 해당 문제를 보진 못헀지만 오늘 오전에 윈도에서 실험해보고 psql --username으로 POSTGRES_USERNAME에 입력한 값을 줘야 연결 되는것을 보고 답변 남겼었습니다.
아무쪼록 좋은 질문과 해결 방법 공유해 주셔서 정말 감사합니다.
0
저 같은 경우는, 기존에 localhost에 올라가 있는 postgre와 겹쳐서 같은 에러가 났는데, docker에서의 포트를 다르게 지정하였습니다. 5431 에서 5432로 연결되도록 하였네요.
spring.datasource.url=jdbc:postgresql://localhost:5431/springboot
0