Mac에서 PostgreSQL이 실행되지 않습니다


55

전체 오류는 다음과 같습니다.

psql : 서버에 연결할 수 없습니다 : 해당 파일이나 디렉토리가 없습니다. 서버가 로컬로 실행 중이고 Unix 도메인 소켓 "/tmp/.s.PGSQL.5432"에서 연결을 수락합니까?

Mac에서 Homebrew를 통해 Postgresql을 설정 한 것은 이번이 두 번째이며, 무슨 일이 일어나고 있는지 전혀 알지 못합니다. 이전에는 작동했습니다. 어느 시점에서 나는 엉망인 명령을 입력해야합니다. 잘 모르겠습니다. 이제 명령 행에서 SQL 명령을 입력 할 때마다 위의 메시지가 표시됩니다. 서버가 실행 중인지 확인하는 명령을 실행했지만 서버가 작동하지 않는 것 같습니다. 사용하여 서버를 시작하려고하면

$ postgres -D / usr / local / pgsql / data

다음과 같은 오류가 발생합니다.

postgres가 서버 구성 파일 "/usr/local/pgsql/data/postgresql.conf"에 액세스 할 수 없음 : 해당 파일 또는 디렉토리가 없습니다.

Homebrew를 통해 Postgresql을 제거했다가 다시 설치했지만 문제가 지속됩니다. 이 작업을 수행하는 방법에 대해 완전히 상실했습니다. 도움을 주시면 감사하겠습니다.

답변:


51

이 문제는 postmaster.pid파일 이 남은 충돌 프로세스로 인한 것일 수도 있습니다 .

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql

4
MacOSX에서이 답변은 저를 구했습니다. 컴퓨터를 재부팅 한 후 OP와 같은 오류가 발생했습니다. brew services그들이 모든 일하는 것처럼 보인다 만들었 기 때문에 명령이 도움이되지 않았다. 를 제거하면 postmaster.pid결국 모든 것이 다시 작동하게됩니다. 감사!
vinhboy

1
이것은 나에게도 일어났다. Postgres가 나타나지 않은 후 Mac OS X의 하드 충돌로 재시동되었습니다. 추출 서비스 시작 / 중지 / 다시 시작이 작동하지 않으면 pid 파일을 수동으로 제거해야합니다.
Matthijs

권장되는 방법은 물론 Docker 컨테이너에서 Postgres를 실행하는 것입니다. 컨테이너를 종료하면 매우 쉽게 시작할 수 있으며 모든 것이 정리됩니다. 도커 컨테이너에서 타사 응용 프로그램을 실행하는 것이 요즘 실제로해야한다고 말하고 싶습니다.
demisx

43

대답은 여기에 있습니다 .

서버를 수동으로 시작하려면이 명령을 실행하십시오.

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

14

나는 같은 것을 얻고 있었다

Is the server running locally and accepting connections on Unix domain 
socket "/tmp/.s.PGSQL.5432"?

Homebrew의 루프 설치 / 시작 / 중지 / 다시 시작하여 사용할 수 없습니다 ...

마침내 일 brew postgresql-upgrade-database했다.

10.4 대신 9.6에 있었던 것 같습니다. 최근 App Store를 다시 시작하면 모든 데이터베이스 서버가 다시 시작되었습니다.


이것은 나를 위해 일했다
davideghz 9

그것이 brew postgresql-upgrade-database내가 놓친 것입니다. 지적 해 주셔서 감사합니다.
코린

고마워요!
Erwin Rooijakkers

모든 솔루션을 시도했습니다. 그러나 이것은 나를 위해 일한 유일한 사람입니다. 왜 이것이 완전히 고쳐 졌는지 설명 할 수 있다면 좋을 것입니다.
JohnnyQ

11

방금 같은 문제를 해결했습니다. 내가 있기 때문에 그냥 잊어제대로 실행 사용하기 전에.

들어 순수 설치 postgresql 맥 OS에, 프로세스는 (사용하게 될 양조 명령) :

brew install postgresql

postgresql로그인 할 때 자동으로 실행하려면 다음을 수행하십시오 .

ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

또는 원하는 경우 언제든지 실행할 수 있습니다.

postgres -D /usr/local/var/postgres

더 복잡한 경우에는 brew uninstall postgresql다음 단계를 다시 수행하십시오.

그것이 도움이되기를 바랍니다!


1
업데이트 : Homebrew에 설치된 postgres의 경우 brew services start postgresql이제 로그인 할 때 postgres를 시작하는 기본 방법입니다.
henry

5
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket"/var/pgsql_socket/.s.PGSQL.5432"?

위의 오류가 계속 발생했으며 위의 해결책 중 어느 것도 나를 위해 일하지 않았습니다. 마지막으로 다음 솔루션은 Mac OS X에서 내 문제를 해결했습니다.

BREW를 사용하여 postgres 설치

brew install postgres

양조 서비스 설치

brew tap homebrew/services

백그라운드 서비스로 postgres를 시작하려면

brew services start postgresql

postgres를 수동으로 중지하려면

brew services stop postgresql

추출 서비스를 사용하여 Postgres를 다시 시작할 수도 있습니다

brew services restart postgresql

2

postgres 서버가 실행되고 있지 않을 때 발생합니다. MAC에서 Homebrew를 통해 Postgres를 올바르게 설치하는 단계 :

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [이것은 주어진 디렉토리를 데이터베이스 디렉토리로 사용하기 위해 postgres를 초기화합니다. 일반적으로 데이터베이스 저장에 사용자 디렉토리를 사용하지 않는 것이 좋습니다. sudoers 파일을 편집하여 initdb 및 유사한 명령을 추가 한 다음 / usr / local / var / postgres에서 initdb를 실행하십시오.]

  3. pg_ctl -D /Users/<username>/db -l logfile start [2 단계에서 성공한 후 3 단계를 실행하라는 프롬프트가 표시됩니다.이 명령은 서버를 수동으로 시작합니다.]


2

그것은 나를 위해 일했다. 시스템의 버전에 따라 postgresql 디렉토리를 변경하십시오.

공통 경로 rm /usr/local/var/postgres/postmaster.pid

하지만 내 시스템 경로에서 postgresql@9.6의 경우 rm /usr/local/var/postgresql@9.6/postmaster.pid

postgresql@9.6-를 다시 시작하십시오 brew services restart postgresql@9.6


응 그게 작동하는 사람이야!
PirateApp

1

방금 /etc/postgresql/9.5/main/postgresql.conf에서 주석 처리를 제거했습니다.

unix_socket_permissions = 0777

postgres를 다시 시작하십시오. 그리고 나를 위해 작동합니다.


1

최근에 비슷한 문제를 겪었습니다. 또 다른 문제와 해결책이 있습니다. 서버가 2 개의 다른 포트에서 실행되도록 설정되었지만 2 버전의 postgres (9.3 및 9.6)를 실행했지만 bash의 psql 명령이 기본 포트 5432에 연결하려고 시도하는 방법이 있습니다. 서버가 실행 중인지 확인하십시오. 포트 설정을 실행 한 다음을 실행하십시오 psql -p <port> postgres. 해결책은 포트를 변경하는 것입니다.


1

나는 오랫동안 찾고 있었고 이것이 가장 깨끗하고 깔끔한 해결책이었습니다.

최근에 brew upgrade postgres를 사용하여 Postgres를 9.2에서 9.3으로 업그레이드했습니다. 프로세스는 매끄럽고 pg_upgrade는 매우 편리한 도구입니다.

그러나 Postgres에 연결하는 데 필요한 사양을 실행하려고하면 문제가 발생했습니다. Postgres가 확실히 실행되었지만 갑자기 나는 얻었습니다.

서버에 연결할 수 없습니다 : 해당 파일 또는 디렉토리가 없습니다 (PG :: ConnectionBad) 서버가 로컬로 실행 중이고 Unix 도메인 소켓 "/var/pgsql_socket/.s.PGSQL.5432"에서 연결을 허용합니까? 문제는 새 버전의 Postgres가 대신 /tmp/.s.PGSQL.5432에서 수신한다는 것입니다. 구성을 망쳐 놓고 Postgres가 이전에 사용했던 도메인 소켓을 사용하도록 만들거나 Rails에 연결 방법을 명시 적으로 알려주었지만 두 가지 방법 모두 내가해야 할 일처럼 보였습니다. 난 레일즈에게 그 길에서 postgres에 연결하라고 말한 적이 없었으며, Rails는 그것을 가정했지만 이제는 가정이 잘못되었습니다.

조금 놀랍다면 수정은 간단합니다. 'pg'gem을 설치하면 설치된 Postgres 버전을 감지하고 도메인 소켓 경로를 적절하게 설정합니다. 해결책은 gem을 다시 설치하는 것만 큼 간단합니다. $ gem uninstall pg $ cd my-rails-app/ $ bundle install

http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/


1
제발 편집 은 귀하의 대답을 링크가 작동 중지되면 값을 제공합니다 . 다른 사람이 작성한 자료를 참조하는 방법에서 올바르게 수행하는 방법에 대한 지침을 찾을 수 있습니다 . 감사합니다.
폴 화이트

0

명령을 사용하여 업데이트

  brew postgresql-upgrade-database

다음 오류가 발생하면 'brew'명령을 찾을 수 없지만 다음과 같이 설치할 수 있습니다. sudo apt install linuxbrew-wrapper

그런 다음 명령을 사용하여 설치하십시오.

 sudo apt install linuxbrew-wrapper

-3

아래 단계가 도움이됩니다.

brew uninstall postgresql brew 설치 postgresql brew postgresql-upgrade-database

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