본문 바로가기
docker(도커)

도커(docker)&포스트그레스(postgresql) error directory "/var/lib/postgresql/data" exists but is not empty

by JeeU147 2022. 7. 11.
반응형

안녕하세요.

 

오늘은 도커에서 postgresql을 실행시킬 때 나는 오류(에러)에 대해 알아보려고 합니다.

도커 로그 확인

The database cluster will be initialized with locale "en_US.utf8".

The default database encoding has accordingly been set to "UTF8".

The default text search configuration will be set to "english".

 

Data page checksums are disabled.

initdb: error: directory "/var/lib/postgresql/data" exists but is not empty If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/data" or run initdb with an argument other than "/var/lib/postgresql/data".
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

 

- 번역본

데이터베이스 클러스터는 "en_US.utf8" 로케일로 초기화됩니다.

기본 데이터베이스 인코딩은 "UTF8"로 설정되었습니다.

기본 텍스트 검색 구성은 "english"로 설정됩니다.



데이터 페이지 체크섬이 비활성화되었습니다.

initdb: 오류: 디렉토리 "/var/lib/postgresql/data"가 존재하지만 비어 있지 않습니다.
새 데이터베이스 시스템을 생성하려면 "/var/lib/postgresql/data" 디렉토리를 제거하거나
비우거나 다음을 사용하여 initdb를 실행하십시오.
"/var/lib/postgresql/data" 이외의 인수.
이 데이터베이스 시스템에 속한 파일은 "postgres" 사용자가 소유합니다.
이 사용자는 서버 프로세스도 소유해야 합니다.

 

반응형

※ 해당 오류의 문제점

  • 해당 오류는 postgresql data위치를 도커 내부에 존재하는"/var/lib/postgresql/data"로 지정했지만 해당 디렉토리에 postgresql 데이터 외에 디렉토리나 파일이 존재할 때 발생하는 오류입니다.

 

※ 해당 오류의 해결방법

  1. postgresql data위치를 도커 내부에 존재하는"/var/lib/postgresql/data" 곳에 postgresql data에 해당하는 data를 둬야합니다.
  2. postgresql data가 다른 위치에 저장이 되어있다면 데이터가 저장되어 있는 곳으로 지정을 해줘야합니다.
  3. 여기서 말하는 postgresql data란? 아래 그림과 같이 있어야 postgresql data입니다.
e.g) 잘된 예시
/var/lib/postgresql/data/base
and
/var/lib/postgresql/data/pg_hba.conf

e.g) 잘못된 예시
/var/lib/postgresql/data/postgresql
and
/var/lib/postgresql/data/data

postgresql data

이렇게 error directory "/var/lib/postgresql/data" exists but is not empty 오류에 대해 알아보았습니다.

 

감사합니다.

반응형

댓글