Psql이 서버에 연결할 수 없습니다 : 해당 파일이나 디렉터리가 없습니다. 5432 오류가 발생합니까?


114

psqlVagrant 컴퓨터에서 실행하려고 하는데이 오류가 발생합니다.

psql: could not connect to server: No such file or directory

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

참고 : Vagrant 1.9.2 상자 : ubuntu / trusty64, https://atlas.hashicorp.com/ubuntu/boxes/trusty64

postgres를 설치하고 실행하기 위해 사용한 편집 명령 :

  • sudo apt-get update
  • sudo apt-get install postgresql
  • sudo su postgres
  • psql -d postgres -U postgres

1
이것이 저에게 효과적
Bruno Louvem Azeredo

답변:


156

내 pg_hba.conf 파일 ()의 구성과 관련된 동일한 문제가 발생했습니다 /etc/postgresql/9.6/main. 9.6은 내가 사용중인 postgresql 버전입니다.

오류 자체는 postgresql의 잘못된 구성과 관련이 있으며, 이로 인해 서버가 시작되기 전에 충돌이 발생합니다.

다음 지침을 따르는 것이 좋습니다.

  1. 다음을 사용하여 postgresql 서비스가 실행 중인지 확인합니다. sudo service postgresql start
  2. pg_lsclusters터미널에서 실행
  3. 실행중인 클러스터가 무엇인지 확인합니다. 출력은 다음과 같아야합니다.

    버전-클러스터 포트 상태 소유자 데이터 디렉토리

    9.6 ------- 메인-5432 온라인 postgres /var/lib/postgresql/9.6/main

    '---'기호는 정렬을 위해서만 사용되므로 무시하십시오. 중요한 정보는 버전과 클러스터입니다. 상태 열에서 서버가 실행 중인지 여부를 확인할 수도 있습니다.

  4. 버전 및 클러스터에서 정보를 복사하고 다음과 같이 사용하십시오. pg_ctlcluster <version> <cluster> start, 제 경우에는 버전 9.6 및 클러스터 'main'을 사용하여pg_ctlcluster 9.6 main start
  5. 뭔가 잘못된 경우 postgresql은에서 액세스 할 수있는 로그를 생성 /var/log/postgresql/postgresql-<version>-main.log하므로 제 경우에는 전체 명령이 sudo nano /var/log/postgresql/postgresql-9.6-main.log.
  6. 출력에 오류 내용이 표시되어야합니다.

    2017-07-13 16:53:04 BRT [32176-1] LOG : 잘못된 인증 방법 "all"
    2017-07-13 16:53:04 BRT [32176-2] CONTEXT : 구성 파일의 90 행 "/ etc /postgresql/9.5/main/pg_hba.conf "
    2017-07-13 16:53:04 BRT [32176-3] 치명적 : pg_hba.conf를로드 할 수 없습니다.

  7. 오류를 수정하고 postgresql 서비스를 다시 시작 sudo service postgresql restart하면 괜찮습니다.

나는 이것을 찾기 위해 많은 것을 검색했으며 신용은이 게시물 로 이동합니다 .

행운을 빕니다!


1
훌륭한 가이드. 포괄적 인 설명이 가득!
Salathiel Genèse

37

나는 같은 문제가 있었지만 여기에 대답이 도움이되지 않았습니다.

수정 방법 (Mac)

  • postgresql을 시작하십시오. pg_ctl -D /usr/local/var/postgres start
  • 와 같은 오류 메시지 를 찾습니다 FATAL: could not open directory "pg_tblspc": No such file or directory.
  • 누락 된 디렉토리 생성 mkdir /usr/local/var/postgres/pg_tblspc
  • 누락 된 모든 디렉토리를 만들 때까지 1 단계부터 반복합니다.
  • 완료되면 postgresql을 다시 시작하려고하면 다음과 같이 말할 수 있습니다 .FATAL: lock file "postmaster.pid" already exists
  • postmaster.pid 삭제 :rm /usr/local/var/postgres/postmaster.pid
  • 다음을 사용하여 postgres를 시작하십시오. pg_ctl -D /usr/local/var/postgres start
  • 완료 ✨

13

나는이 질문을 발견했을 때처럼 길을 잃고 절망감을 느끼는 사람을 위해 이것을 게시하고 있습니다. 때때로 psotgresql 관련 구성 파일을 편집하면 실수로 파일의 권한을 변경할 수 있습니다.

여기에 이미지 설명 입력

pg_hba.conf가 어떻게 루트에 속해 있는지, 사용자는 그것을 읽을 수도 없습니다. 이로 인해 postgres가이 파일을 열 수 없으므로 서버를 시작할 수 없으며 원래 질문에 표시된 오류가 발생합니다.

달리기

sudo chmod +r pg_hba.conf

이 파일을 postgres 사용자가 다시 한 번 액세스 할 수 있도록 한 다음 실행 한 후

sudo service postgresql start

서버를 다시 실행할 수있었습니다.


예, 이것은 내 문제였으며 이것은 로그에서 지적되지 않았습니다 (또는 그것이 이해되지 않았다면).
EAmez

정확히 나에게 일어난 일은 아니지만 어떤 이유로 NETWORK SERVICE는 전체 디렉토리 구조에 대한 쓰기 권한을 잃었습니다. 이 대답은 나를 올바른 방향으로 지적했기 때문에 upvote.
Brad Mathews

5

/etc/postgresql/9.6/main/postgresql.conf할당 된 포트가 표시 됩니까 ? 내 기본 Xubuntu Linux 설치에서 내 기억할 수있는 한 최선의 이유로 port = 5433이 표시되었지만 동일한 파일 listen_addresses = 'localhost'에서 행을 주석 처리하고 주석 처리를 제거했습니다 listen_addresses = '*'. 그래서 시작하고 거기에서 확인하십시오. 도움이 되었기를 바랍니다.


4

사용 명령 :

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

9
이것은 전체 데이터베이스를 제거하지 않습니까? 경고의 한마디가 필요하다고 생각합니다.
d33tah

1
@Tucker Watts와 @Gaurav Verma에게 감사드립니다. 두 솔루션을 모두 시도하여 문제를 해결하고이 명령을 추가했습니다 pg_ctl -D /usr/local/var/postgres -l logfile start.
Niyongabo

4

이것은 나를 위해 작동합니다.

pg_ctl -D /usr/local/var/postgresql@9.6 stop;
brew services stop postgresql@9.6;
brew services start postgresql@9.6;

4

이 두 단계는 Mac에서 나를 위해 해결했습니다.

rm /usr/local/var/postgres/postmaster.pid
brew services restart postgresql

편집하다:

이 문제에 직면 한 경우 (@ luckyguy73에 의해보고 됨) : psql: FATAL: database "postgresql" does not exist

당신은 실행할 수 있습니다

brew postgresql-upgrade-database

그것을 해결하기 위해.


고마워요, 나는 당신의 지시에 따라 치명적에 연결할 수 없음에서 갔다 : "psql : FATAL : database"postgresql "does not exist"
luckyguy73

이상하네요. 이건 항상 저에게 효과적입니다. 당신은 그것을 해결할 수 있었습니까?
nicodp

걱정하지 마세요, 실제로 괜찮 았습니다. 방금 'brew postgresql-upgrade-database'를 실행했고 그게 트릭을했습니다. 감사합니다
luckyguy73

1
고쳐 주셔서 감사합니다! 다른 사람이 같은 문제에 직면 할 경우를 대비하여 괜찮다면 답변에 추가하겠습니다. 감사합니다
nicodp

3

zsh 내에서 :

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

이것은 수많은 시간 문제 해결 후 나를 위해 일한 유일한 것입니다.


2

데이터베이스 관리자를 열고이 스크립트를 실행하십시오.

update pg_database set datallowconn = 'true' where datname = 'your_database_name';

2

/etc/hosts파일 에서 무언가를 변경했을 때와 같은 일이 저에게 일어났습니다 . 그것을 다시 변경 한 후 127.0.0.1 localhost나를 위해 일했습니다.


2

직접 버전 sudo apt-get install postgresql-9.5로 pgsql을 다시 설치하십시오 (새 패키지를 설치하기 전에 패키지를 제거해야 함)


2

다음을 실행하여 문제를 해결할 수있었습니다.

sudo systemctl start postgresql@9.5-main

sudo systemctl start postgresql@12-main나를 위해
parsecer

2

제 경우 postmaster.id에는 문제를 일으킨 마지막 시스템 충돌 중에 제대로 삭제되지 않은 잠금 파일 이었습니다. sudo rm /usr/local/var/postgres/postmaster.pidPostgres로 삭제 하고 다시 시작하면 문제가 해결되었습니다.


1

VM에서 SQL db를 만들 때 동일한 오류가 발생했습니다. /etc/postgresql/9.3/main/postgresql.conf의 기본값을 shared_buffers = 200MB총 RAM의 75 %로 변경했습니다 . 음, 실제로 VM에 RAM을 할당하는 것을 잊었습니다. 새 데이터베이스를 만들라는 명령을 내렸을 때 동일한 오류가 발생했습니다.

전원을 끄고 아기에게 젖병 (RAM)과 프레스토를주었습니다.


1

마지막 pg_basebackup 백업 파일에서 데이터베이스를 복원 할 때이 오류가 발생했습니다. 그 후 데이터베이스 (psql) 연결을 시도했을 때 같은 오류가 발생했습니다. 오류가 해결되었습니다. pg_hba.conf 파일을 업데이트하고 "peer"인증이있을 때마다 "md5"로 바꾸고 postgres 서비스를 다시 시작했습니다. 그 후 문제가 해결되었습니다.



1

이 오류는 내 Mac mini의 전원이 분리 된 후 발생했으며 (강제 종료) 문제를 해결하기 위해해야 ​​할 일은 다시 시작하는 것뿐이었습니다.


1

postgres 포트를 명확히해야합니다. 제 경우에는 어떤 포트 postgres가 실행되고 있는지 몰랐습니다.

lsof -i | grep 'post'

그러면 어떤 포트가 수신 중인지 알 수 있습니다.

psql -U postgres -p "port_in_use"

포트 옵션을 사용하면 대답이 될 수 있습니다. psql을 사용할 수 있습니다.


1

가끔 동일한 문제가 발생하지만 대부분 macOS 업그레이드 후에 발생합니다. 종료하고 새 버전으로 마이그레이션하면 일반적으로 문제가 해결됩니다 (버전에 따라 변경). 따라서 먼저 postgresql을 업그레이드하십시오.

brew services stop postgresql@12
brew services start postgresql@12
brew postgresql-upgrade-database

이것은 대부분 일시적인 수정이지만 더 나은 솔루션을 찾을 수 없기 때문에 이것이 저에게 효과적입니다.


양조 postgresql-upgrade-database는 내가 다른 모든 것을 시도한 후 마침내 나를 위해 일한 것입니다
luckyguy73

1

위의 답변 중 어느 것도 효과가 없으면이 답변을 시도해보십시오.

많은 사람들이이 문제에 대한 많은 해결책을 언급했습니다! 그러나 그들 모두는 잊어 버렸습니다. 디스크에 충분한 공간이 없거나 할당 된 공간 postgres이 꽉 찼을 때 동일한 문제가 발생합니다.

여유 공간이 가득 차면 시스템 스토리지를 확인하십시오! 그때까지 당신의 포스트 그레스를 다시 시작 sudo service postgresql restart또는 중지를하고 시작 sudo service posgresql stopsudo service postgresql start

이것은 문제를 해결할 것입니다.


0

Mac에서 postgres 11과 동일한 문제가 있습니다. 다시 시작할 때마다이 오류가 발생합니다.

psql: could not connect to server: No such file or directory

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

임시 수정으로 나는

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