pg_ctl: PID 파일 "/var/lib/postgres/data/postmaster.pid"를 열 수 없습니다: 권한이 거부되었습니다.

pg_ctl: PID 파일 "/var/lib/postgres/data/postmaster.pid"를 열 수 없습니다: 권한이 거부되었습니다.

Arch Linux에서 initdb 명령을 실행한 후 다음 메시지가 나타납니다.

Success. You can now start the database using:
    pg_ctl -D /var/lib/postgres/data -l logfile start

postgres 사용자로서 위의 명령을 사용하여 시작하려고 시도하고 오류가 발생합니다.

FATAL: could not create lock file "/run/postgresql/.s.PGSQL.5432.lock" no such file or directory

postgres 사용자로 종료하고 위 명령으로 시작을 시도하여 다음을 얻습니다.

pg_ctl: could not open PID file "/var/lib/postgres/data/postmaster.pid" : Permission denied

위의 명령을 sudo로 실행해 보십시오.

sudo pg_ctl -D /var/lib/postgres/data -l logfile start

그리고 얻다:

pg_ctl: cannot run as root.

답변1

패키지된 시작 스크립트를 사용하지 않고 Postgres를 수동으로 시작할 때 스크립트가 수행하는 작업을 수행해야 합니다.

  1. 다른 사람에 대한 쓰기 권한과 읽기 권한이 /run/postgresql있는 디렉터리를 만듭니다 . 일반적으로 램 디스크에 마운트되므로 비어 있는 것이 정상입니다.postgres/run

  2. pg_ctl독점적 으로 사용자로 실행합니다 postgres. 이를 위해 사용해야 하는 sudo -u postgres경우 사용하세요 .sudo

언급한 첫 번째 오류는 #1로 해결되고 나머지 두 오류는 #2로 해결됩니다. 또는 OS용 패키지와 함께 제공되는 시작 스크립트를 사용하면 이러한 세부 사항을 처리할 수 있으므로 배울 필요가 없습니다.

문서는 다음과 같습니다.https://wiki.archlinux.org/index.php/PostgreSQL다음과 같이 말합니다.

마지막으로,시작그리고~할 수 있게 하다postgresql.service.

systemctl enable postgresql.service이는 다음 을 의미합니다 systemctl start postgresql.service.반대에게 pg_ctl [...options...] start.

답변2

가치 있는 점에 대해 저는 지금 Ubuntu의 Postgresql 10과 매우 관련된 문제가 있다는 점을 덧붙이고 싶습니다. 사실 could not open PID file “/var/lib/postgres/data/postmaster.pid”그것이 나를 여기로 데려온 것입니다. 나는 여기와 다른 곳에서 배운 것을 모두 시도했지만 소용이 없었고 오래된 재부팅에 의지했습니다. 그리고 모두 잘 왔습니다. 아 글쎄. 재부팅하고 시도하는 것을 기억하는 것 외에 많은 것을 배웠거나 많은 것을 가르쳤다고 말할 수는 없습니다...

관련 정보