pg_ctl: no se pudo abrir el archivo PID "/var/lib/postgres/data/postmaster.pid": permiso denegado

pg_ctl: no se pudo abrir el archivo PID "/var/lib/postgres/data/postmaster.pid": permiso denegado

En Arch Linux, después de ejecutar el comando initdb, aparece el siguiente mensaje:

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

Como usuario de Postgres, intento comenzar usando el comando anterior y obtengo un error:

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

Salgo al usuario de Postgres e intento comenzar con el comando anterior y obtengo:

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

Entonces intento que el comando anterior se ejecute como sudo:

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

y obten:

pg_ctl: cannot run as root.

Respuesta1

Al iniciar Postgres manualmente, es decir, sin utilizar el script de inicio empaquetado, debe hacer lo que hace el script:

  1. cree el /run/postgresqldirectorio con permiso de escritura postgres y permiso de lectura para otros. /runNormalmente está montado en un disco RAM, por lo que es normal que esté vacío.

  2. ejecutarse pg_ctlcomo usuario postgresexclusivamente. Úselo sudo -u postgressi sudoes necesario usarlo para eso.

El primer error que mencionas se resuelve con el n.° 1 y los otros dos se resuelven con el n.° 2. O simplemente use el script de inicio que viene con el paquete para su sistema operativo; está ahí para cuidar estos detalles para que usted no tenga que aprenderlos.

el doctor enhttps://wiki.archlinux.org/index.php/PostgreSQLle dice a:

Finalmente,comenzarypermitirel servicio postgresql.

lo que significaría systemctl enable postgresql.servicey systemctl start postgresql.service,en contraposicióna pg_ctl [...options...] start.

Respuesta2

Por si sirve de algo, quiero agregar que tuve un problema muy relacionado con Postgresql 10 en Ubuntu. De hecho, could not open PID file “/var/lib/postgres/data/postmaster.pid”es lo que me trajo aquí. Intenté cosas aprendidas aquí y en otros lugares sin éxito, luego recurrí al antiguo reinicio. Y todo salió bien. Oh bien. No puedo decir que haya aprendido mucho, o que me enseñe mucho, aparte de recordar intentar reiniciar...

información relacionada