pg_ctl: não foi possível abrir o arquivo PID "/var/lib/postgres/data/postmaster.pid": Permissão negada

pg_ctl: não foi possível abrir o arquivo PID "/var/lib/postgres/data/postmaster.pid": Permissão negada

No Arch Linux, após executar o comando initdb, recebo a seguinte mensagem:

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

Como usuário do postgres, tento começar usando o comando acima e obtenho um erro:

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

Saio para o usuário postgres e tento iniciar pelo comando acima e obtenho:

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

Então tentei o comando acima executado como sudo:

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

e pegue:

pg_ctl: cannot run as root.

Responder1

Ao iniciar o postgres manualmente, ou seja, sem usar o script de inicialização empacotado, você precisa fazer o que o script faz:

  1. crie o /run/postgresqldiretório com permissão de gravação postgres e permissão de leitura para outros. /runnormalmente é montado em um disco RAM, então é normal que esteja vazio.

  2. executado exclusivamente pg_ctlcomo usuário postgres. Use sudo -u postgresif sudotem que ser usado para isso.

O primeiro erro que você mencionou foi resolvido pelo nº 1 e os outros dois foram resolvidos pelo nº 2. Ou apenas use o script de inicialização que vem com o pacote do seu sistema operacional, ele está lá para cuidar desses detalhes para que você não precise aprendê-los.

O documento emhttps://wiki.archlinux.org/index.php/PostgreSQLdiz para:

Finalmente,começarehabilitaro postgresql.service.

o que significaria systemctl enable postgresql.servicee systemctl start postgresql.service,em oposiçãopara pg_ctl [...options...] start.

Responder2

Para constar, quero acrescentar que tive um problema fortemente relacionado agora com o Postgresql 10 no Ubuntu. Na verdade could not open PID file “/var/lib/postgres/data/postmaster.pid”foi o que me trouxe até aqui. Tentei coisas aprendidas aqui e em outros lugares, sem sucesso, e então recorri à antiga reinicialização. E tudo veio bem. Ah bem. Não posso dizer que aprendi muito, ou que ensina muito, a não ser, lembre-se de tentar reiniciar...

informação relacionada