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:
cree el
/run/postgresql
directorio con permiso de escriturapostgres
y permiso de lectura para otros./run
Normalmente está montado en un disco RAM, por lo que es normal que esté vacío.ejecutarse
pg_ctl
como usuariopostgres
exclusivamente. Úselosudo -u postgres
sisudo
es 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:
lo que significaría systemctl enable postgresql.service
y 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...