postgresql 설치 : initdb 데이터 디렉토리가 비어 있지 않습니까?


17

postgresql 데이터베이스를 만들려고합니다.

PostgreSQL을 설치할 때 다음 명령을 내 렸습니다.

sudo yum install postgresql postgresql-server

나중에 구성 파일을 수정했습니다.

sudo vim /var/lib/pgsql/data/pg_hba.conf

로 수정

local   all         all                               trust
host    all         all         127.0.0.1/32          trust
host    all         all         ::1/128               trust
host    all         all         0.0.0.0/0             md5

postgresql 서비스를 시작하려고하는 동안 :

sudo service postgresql initdb

> Data directory is not empty!                               [FAILED]

sudo chkconfig postgresql on

sudo service postgresql start

Starting postgresql service:                               [  OK  ]

이 오류의 원인은 무엇이며 어떻게 해결합니까?

답변:


18

Initdb는 한 번만 실행해야합니다. 설정 파일을 보관할 디렉토리와 실제 데이터베이스를 생성합니다. 당신은 분명히 이미 이미 그것을했습니다; otherwrise는 편집 할 pg_hba.conf가 없습니다.

따라서 postgresql initdb전체 재설치를 수행하지 않는 한 다시 실행하지 마십시오 .


답장 주셔서 감사합니다 .. 나는 그것을 두 번 실행 ... 당신은 설치에 문제가 아닌 것을 의미합니다 ..
sridhar

최소한 설치에 아무런 문제가 없음을 의미합니다. 실패한 유일한 것은 initdb를 두 번 이상 수행하는 것이며 실패 해야합니다 . 다른 모든 것은 OK로 표시됩니다. 다른 문제가 있으면 설명 할 수 있으면 도움이됩니다.
Jenny D

대단히 감사합니다 .. 문제가되지 않습니다 .. 문제가 생기면 알려 드리겠습니다 ..
sridhar

15

에서 여기 :

Postgres DB를 완전히 지우고 다시 설치하는 경우 다음 initdb과 같이 실행하십시오 .

service postgresql-9.2 initdb -E 'UTF8' --pgdata="/foo/bar/"

이 서비스 오류가 발생할 수 있습니다 :

데이터 디렉토리가 비어 있지 않습니다! [실패한]

그것을 고치기 위해 (그리고 이것은 핵 옵션입니다-모든 db 데이터가 지워집니다!)

Amazon Linux (2014-x)에서 :

rm -rf /var/lib/pgsql9/data

CentOS (6.x)에서

rm -rf /var/lib/pgsql/9.2/data

이제 initdb명령을 다시 시도하면 이번에는 작동합니다.

service postgresql-9.2 initdb


4

RHEL / CentOS 7 및 Fedora와 같은 시스템 기반 시스템에서 initdb 실행 절차는 약간 다릅니다. 이것은 더 이상 존재하지 않는 init 스크립트에 의해 더 이상 수행되지 않으며 새로운 절차는 업스트림 명령에 훨씬 가깝습니다 .

먼저 사용자 su에게 제공 postgres한 다음 initdb또는 을 실행 해야합니다 pg_ctl initdb. 기본적으로 기본 데이터 디렉토리를 자동으로 선택하므로 Red Hat 빌드를 사용하는 경우 데이터 디렉토리를 제공 할 필요가 없습니다 /var/lib/pgsql.

예를 들면 다음과 같습니다.

# su - postgres
$ pg_ctl initdb
$ exit
#

물론 초기 설치시 초기 데이터 디렉토리를 설정하기 위해이 작업을 한 번만 수행합니다. 완전히 새로 설치하거나 재해로부터 복원하지 않는 한 다시 수행하지 않습니다.


3

CentOS 6에서 PostgreSQL 9.3을 사용하여 동일한 문제가 발생했습니다.

/var/lib/pgsql/9.3/data 폴더를 삭제 한 후 명령을 다시 실행했습니다.

sudo service postgresql-9.3 initdb

... DB 서비스를 다시 초기화했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.