postgresql을 설치하십시오. 왜 initdb를 사용할 수 없습니까?


15

이 지침을 따르고 있지만 17.2 단계 만 수행 할 수 있습니다.

를 통해 postgresql을 성공적으로 설치했지만

sudo apt-get install postgresql

실행할 때 명령

initdb -D /usr/local/pgsql/data

우분투는 'initdb'가 설치되어 있지 않다고 말합니다. 지시 사항에 따라이 명령이 설치되었음을 알려줍니다.

sudo apt-get install postgresql

무슨 일이야? postgres-xc를 설치하여 initdb를 사용할 수 있지만 postgres-xc는 이상한 제 3 자 쓰레기 일 뿐이며 지침에 자세히 설명되어 있지 않습니다. 어떤 아이디어?

답변:


14

initdb설치 중에 생성 된 postgres 사용자 계정으로 실행됩니다. postgresql을 설치 한 후 다음을 수행 할 수 있습니다.

sudo su - postgres

그런 다음 실행할 수 있어야합니다 initdb.


4
/usr/share/doc/postgresql-common/README.Debian.gz에서 인용 :Please note that you can of course also use the upstream tools for creating clusters, such as initdb(1). However, please note that in this case you cannot expect *any* of above pg_* tools to work, since they use different configuration settings and file locations. If in doubt, then do *not* use initdb, but only pg_createcluster. Since merely installing postgresql-X.Y will already set up a default cluster which is ready to work, most people do not need to bother about initdb or pg_createcluster at all.
cdaddr

3
postgres 사용자로 전환 한 후에도 여전히이 오류가 발생합니다
Cogwheel

Postgres 9.6을 사용하는 Ubuntu Server 14에서는 작동하지 않습니다.
sudo

이후이 작동하지 않습니다 initdb에 있습니다 /usr/lib/postgresql/X.X/bin/.
Li Dong

27

당신은 발견 할 것이다 initdb아래를 /usr/lib/postgresql/x.y/bin/. /usr/share/doc/postgresql-common/README.Debian.gz데비안 및 우분투 설정에 대한 자세한 내용은 참조하십시오 .


이것은 정말로 받아 들여지는 대답이어야합니다. initdb기본 명령이지만 데비안 및 우분투 사용자는 pg_createcluster 및 관련 명령을 사용해야합니다. 또한 표준 설치는 이미 서버 및 기본 / 템플릿 데이터베이스와 함께 기본 클러스터를 생성하므로 일반적으로 initdbOR pg_createcluster을 수행 할 필요가 없습니다 apt-get install postgresql. README Peter는 위에서 언급 한 내용을 읽을 가치가 있습니다.
cdaddr

2
@cdaddr 아니요, postgres를 설치 한 후에는 일반적으로 필요하지 않습니다. 그래도 클러스터를 신속하게 다시 작성해야하고 postgres를 다시 설치하지 않아도되거나 표준이 아닌 위치에서 새 데이터베이스를 초기화해야하는 경우 유용 할 수 있습니다. 예, 이것은 훌륭한 답변입니다.
Erathiel

1
공장. 그리고 이것이 내가 사용하는 버전을 확신 할 수 있기 때문에 가장 좋습니다.
sudo

우리는 initdb를 찾고 있는데, 튜토리얼은 postgresql.org/docs/10/static/creating-cluster.html
nerkn

2

initdb사용자 실행 파일로 설치되지 않았습니다. /usr/lib/postgresql/X.X/bin/버전에 따라 다르므로 에에 만 설치됩니다 . initdb특정 디렉토리에서만 실행할 수 있습니다.

다른 답변에서 언급했듯이 postgres를 설치하면 제한된 파티션에있을 수있는 기본 디렉토리가 생성됩니다. 사용자는이를 변경할 수 있지만 다른 단계도 필요합니다. 여기를 참조 하십시오 .


-2

root 1.passwd에서 다음 단계를 수행 한 다음 비밀번호를 postgres로 지정한 다음 2.su postgres 3.psql 4. "CREATE USER SAM;"과 같은 사용자 이름의 사용자를 작성하십시오. 5. 데이터베이스 샘 생성 이제 사용자에게 6.type psql을 로그 아웃하십시오.


이 답변은 질문을 전혀 직접적으로 다루지 않습니다.
cdaddr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.