[macos] Mac OS X에서 PostgreSQL 서버를 시작하는 방법은 무엇입니까?

최종 업데이트 :

나는 initdb명령 을 실행하는 것을 잊었다 .

</ 최종 업데이트>

이 명령을 실행하여

ps auxwww | grep postgres

postgres가 실행되고 있지 않습니다.

> ps auxwww | grep postgres
remcat          1789   0.0  0.0  2434892    480 s000  R+   11:28PM   0:00.00 grep postgres

이것은 postgresql 서버를 어떻게 시작합니까?

최신 정보:

>pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
sh: /usr/local/var/postgres/server.log: No such file or directory

업데이트 2 :

터치가 성공적이지 않아서 대신이 작업을 수행했습니다.

> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/
server.log

그러나 레일 서버를 시작하려고 할 때 여전히 다음과 같은 내용이 표시됩니다.

Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?

업데이트 3 :

> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running

업데이트 4 :

나는 pg_hba.conf (pg_hba.conf.sample 만)가 없으므로 샘플을 수정하고 이름을 바꿨습니다 (.sample을 제거하기 위해). 내용은 다음과 같습니다.

 # IPv4 local connections:
 host    all             all             127.0.0.1/32           trust
 # IPv6 local connections:
 host    all             all             ::1/128                trust

그러나 나는 이것을 이해하지 못한다 :

> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running

또한:

sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory

업데이트 5 :

sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.

업데이트 6 :

이것은 이상하게 보인다 :

> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory

그러나 나는 이것을했다 :

>sudo find / -name "*postgresql.conf*"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/postgresql.conf.sample

그래서 나는 이것을했다 :

egrep 'listen|port' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
#listen_addresses = 'localhost'     # what IP address(es) to listen on;
#port = 5432                # (change requires restart)
                # supported by the operating system:
                #   %r = remote host and port

그래서 나는 이것을 시도했다 :

> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf
> cp /usr/share/postgresql/postgresql.conf.sample /usr/share/postgresql/postgresql.conf 

여전히 같은 “서버가 실행 중입니까?” 메시지.



답변

브루 패키지 관리자가 자동으로 시작 launchctl 속성 목록이 포함되어 있습니다. 자세한 정보는brew info postgres .

수동으로 시작하십시오.

pg_ctl -D /usr/local/var/postgres start

수동으로 중지하십시오.

pg_ctl -D /usr/local/var/postgres stop

자동 시작 :

“postgresql을 시작하고 로그인시 다시 시작하려면 :”

brew services start postgresql


결과는 pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start무엇입니까?

결과는 pg_ctl -D /usr/local/var/postgres status무엇입니까?

server.log에 오류 메시지가 있습니까?

pg_hba.conf에서 tcp localhost 연결이 활성화되어 있는지 확인하십시오 :

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust

postgresql.conf에서 listen_addresses와 포트를 확인하십시오 :

egrep 'listen|port' /usr/local/var/postgres/postgresql.conf

#listen_addresses = 'localhost'     # what IP address(es) to listen on;
#port = 5432                # (change requires restart)

청소

Postgres는 Homebrew , Fink , MacPorts 또는 EnterpriseDB 설치 프로그램을 통해 설치되었을 가능성이 높습니다 .

다음 명령의 출력을 확인하여 설치된 패키지 관리자를 판별하십시오.

brew && brew list|grep postgres
fink && fink list|grep postgres
port && port installed|grep postgres


답변

postgresql (homebrew를 통해 설치)을 수동으로 시작하고 중지하려면 가장 쉬운 방법은 다음과 같습니다.

brew services start postgresql

brew services stop postgresql

특정 버전이있는 경우 버전 접미어를 확인하십시오 (예 :

brew services start postgresql@10


답변

나는 거의 똑같은 문제가 있었고 initdb 명령을 수정했다고 인용했다. 이것은 또한 나를위한 해결책이지만, 그것을 찾는 사람들을 위해 누군가가 여기에 게시 한 것을 보지 못했습니다.

initdb /usr/local/var/postgres -E utf8


답변

컴퓨터가 갑자기 다시 시작된 경우

먼저 파일을 삭제해야합니다. /usr/local/var/postgres/postmaster.pid그러면 설치에 따라 언급 된 다른 많은 방법 중 하나를 사용하여 서비스를 다시 시작할 수 있습니다.

Postgres 로그를 확인하여 진행중인 작업을 확인하여이를 확인할 수 있습니다. tail -f /usr/local/var/postgres/server.log


답변

또 다른 접근법은 점심 보석 (launchctl의 래퍼)을 사용하는 것입니다.

brew install postgresql
initdb /usr/local/var/postgres -E utf8
gem install lunchy

postgres를 시작하려면 :

lunchy start postgres

postgres를 중지하려면

lunchy stop postgres

자세한 정보를 원하시면 참조 : ” Mac에서 브루와 Lunchy에 PostgreSQL을 설치하는 방법


답변

여기 내 2 센트 : postgres pg_ctl의 별칭을 만들고 .bash_profile (내 postgresql 버전은 9.2.4이고 데이터베이스 경로는 /Library/PostgreSQL/9.2/data)에 넣었습니다.

alias postgres.server="sudo -u postgres pg_ctl -D /Library/PostgreSQL/9.2/data"

새 터미널을 시작하십시오.

그리고? 다음과 같이 postgresql 서버를 시작 / 중지 할 수 있습니다.

postgres.server start
postgres.server stop


답변

가장 깨끗한 방법 훨씬은 당신이 그것을 통해 설치 한 경우 중지 / 재시작 포스트 그레스 / 시작 brew단순히 언로드 및 / 또는 설치와 함께 제공되는 launchd에 구성 파일을로드 :

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

첫 번째 줄은 postgres를 멈추고 두 번째 줄은 그것을 시작합니다. 모든 것이 해당 파일에 있으므로 데이터 디렉토리 등을 지정할 필요가 없습니다.