작성
·
2.9K
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
29
방금 윈도에서 해봤더니, 윈도에서 하면 그런 문제가 생길수도 있네요.
postgres@766d6461a448:~$ psql --username keesun --dbname springdata
이런식으로 --username을 명시해서 접속하도록 시도해 보세요. 그럼 아마 해당 데이터베이스로 접근하게 될겁니다. 기본으로 명시한 디비에 접근할 때 postgres라는 유저로 접근을 시도하나봅니다. 그래서 위에서 -e POSTGRES_USER=postgres로 변경해서 스크립트를 시도하신 경우에는 유저 이름이 postgres라서 된거 같아요.
요상한 문제네요. 좋은 질문 남겨주셔서 감사합니다. :)
0
저는 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=#