"psql: 서버에 연결할 수 없습니다. 해당 파일이나 디렉터리가 없습니다."

"psql: 서버에 연결할 수 없습니다. 해당 파일이나 디렉터리가 없습니다."

실제로 PostgreSQL 9.4(postGIS 확장 포함)를 설치했는데 설치 후 모든 것이 잘 작동했습니다.

많은 분들이 말씀하셨듯이 저는 /data 폴더를 설정하고 구성 파일 등을 확인했습니다. 다른 프로젝트를 진행하다보니 한동안 psql 작업을 하지 않았는데, 설치가 완료되면 잘 작동하고, 테스트 데이터베이스를 만들고, postgres 사용자를 초기화하는 등의 작업을 했습니다.

이제 ("기본" postgres 사용자를 사용하여) psql을 시작하려고 하지만 연결할 수 없습니다! 서비스 시작/중지/다시 시작해도 아무 것도 변경되지 않습니다.

"psql" 명령의 결과(postgres 사용자 사용):

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"?

서비스 상태를 확인하면 다음과 같은 결과가 나타납니다.

postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
Active: active (exited) since tue 2016-05-24 09:24:13 CEST; 3s ago
Process: 5658 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 5658 (code=exited, status=0/SUCCESS)

명령을 사용하여 서비스 시작/중지/다시 시작

sudo service postgresql start (or restart or stop)

실제 시스템 동작은 변경되지 않습니다.

로그는 다음과 같이 말합니다.

DETAIL:  Permissions should be u=rwx (0700).
FATAL:  data directory "/var/lib/postgresql/9.4/main" has group or world access

답변1

Debian 시스템에서 postgresql 파일과 디렉터리는 user 가 소유하고 postgres, group 에 속해야 하며 (디렉터리) 또는 (파일) 권한이 postgres있어야 합니다 .07000600

그렇지 않은 경우 다음 방법을 사용하여 권한과 소유권을 수정할 수 있습니다.

sudo chown -R postgres:postgres /var/lib/postgresql/9.4/
sudo chmod -R u=rwX,go= /var/lib/postgresql/9.4/

X명령의 대문자에 유의하십시오 chmod. 소문자와 달리 x실행 비트를 설정합니다.오직디렉토리와 파일에이미실행 파일(pg 디렉터리에 실행 파일이 없어야 함)

그런 다음 postgresql 서비스를 다시 시작하십시오.

답변2

Postgres 서버가 실행 중이라고 확신하는 경우 호스트를 localhost로 지정하여 로그인해 보세요. psql만 사용하면 소켓을 사용하여 연결을 시도합니다.

Postgres를 업그레이드하고 이전 서버에 계속 액세스하고 싶었을 때 이 문제가 발생했습니다. 새로운 psql은 혼란스럽습니다.

노력하다:

psql -U username -h localhost

답변3

postgreSQL13을 새로 설치한 후 psql(일반 명령 프롬프트와 그 이후 모두에서 sudo su - postgres) 똑같은 오류 메시지가 나타납니다.

psql: error: 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"?

알고 보니 서비스도 추천을 받았기 때문에 서비스를 시작해야 했습니다."/var/run/postgresql/.s.PGSQL.5432"에 대한 오류가 발생하면 Postgres에 어떻게 액세스합니까?.

노력하다:

  • sudo systemctl start postgresql(또는 enable부팅할 때마다 시작하려면 다음을 참조하세요.Linux에서 PostgreSQL 시작하기) 또는
  • sudo service postgresql start(예를 들어 WSL2에서는 필수).

그 다음에:

sudo su - postgres
psql

당신은 그 안에 있습니다.

누군가에게 도움이 될 수도 있습니다. 그러나 서버가 이미 실행 중이므로 문제가 다를 수 있습니다.

관련 정보