• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

docker에서 postgresql 사용 관련 문의 드립니다.

18.10.12 23:51 작성 조회수 2.17k

9

postgresql 사용중 문의 드립니다.

아래와 같이 psql 을 사용하려고 하면 아래와 같은 경고문이 뜹니다.

postgres@93a997b0c1a8:~$ psql springdata
psql: FATAL:  role "postgres" does not exist
postgres@93a997b0c1a8:~$

그래서 docker 교재의 컨테이너 생성 script를 아래와 같이 변경했습니다.

docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=postgres -e POSTGRES_DB=springdata --name postgres_boot -d postgres

위와 같이 수정하는 것이 맞는 것인가요?

답변 2

·

답변을 작성해보세요.

27

방금 윈도에서 해봤더니, 윈도에서 하면 그런 문제가 생길수도 있네요.

postgres@766d6461a448:~$ psql --username keesun --dbname springdata

이런식으로 --username을 명시해서 접속하도록 시도해 보세요. 그럼 아마 해당 데이터베이스로 접근하게 될겁니다. 기본으로 명시한 디비에 접근할 때 postgres라는 유저로 접근을 시도하나봅니다. 그래서 위에서 -e POSTGRES_USER=postgres로 변경해서 스크립트를 시도하신 경우에는 유저 이름이 postgres라서 된거 같아요.

요상한 문제네요. 좋은 질문 남겨주셔서 감사합니다. :)

0

Minji Jeong님의 프로필

Minji Jeong

2022.08.26

저는 Mac 사용하는데 남겨주신 코멘트처럼 username 명시적으로 하니깐 해당 오류 없어졌네요

환경
- Mac Monterey, M1 2020
- IntelliJ 2022.1


❯ docker exec -i -t postgres_boot bash
root@079983fcd6d6:/# su - postgres -c psql
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  role "postgres" does not exist
root@079983fcd6d6:/# %                                                                                                                                                      
❯ docker exec -i -t postgres_boot bash
root@305e9ca6fb5a:/# su - postgres
postgres@305e9ca6fb5a:~$ psql --username keesun --dbname springdata
psql (14.5 (Debian 14.5-1.pgdg110+1))
Type "help" for help.

springdata=#