Unter Arch Linux erhalte ich nach dem Ausführen des Befehls initdb die folgende Meldung:
Success. You can now start the database using:
pg_ctl -D /var/lib/postgres/data -l logfile start
Als Postgres-Benutzer versuche ich, mit dem obigen Befehl zu beginnen und erhalte einen Fehler:
FATAL: could not create lock file "/run/postgresql/.s.PGSQL.5432.lock" no such file or directory
Ich beende den Vorgang und wechsele zum Postgres-Benutzer, versuche, mit dem obigen Befehl zu starten und erhalte:
pg_ctl: could not open PID file "/var/lib/postgres/data/postmaster.pid" : Permission denied
Dann versuche ich, den obigen Befehl als sudo auszuführen:
sudo pg_ctl -D /var/lib/postgres/data -l logfile start
und bekomme:
pg_ctl: cannot run as root.
Antwort1
Wenn Sie Postgres manuell starten, also ohne das gepackte Startskript zu verwenden, müssen Sie das tun, was das Skript tut:
Erstellen Sie das
/run/postgresql
Verzeichnis mit Schreibberechtigung fürpostgres
und Leseberechtigung für andere./run
Wird normalerweise auf einer RAM-Disk gemountet, daher ist es normal, dass es leer ist.Ausschließlich
pg_ctl
als Benutzer ausführen . Hierzu muss „ Use if“ verwendet werden.postgres
sudo -u postgres
sudo
Der erste von Ihnen erwähnte Fehler wird durch Nr. 1 und die beiden anderen durch Nr. 2 behoben. Oder verwenden Sie einfach das Startskript, das im Paket für Ihr Betriebssystem enthalten ist. Es kümmert sich um diese Details, sodass Sie sie nicht lernen müssen.
Der Arzt beihttps://wiki.archlinux.org/index.php/PostgreSQLsagt zu:
Endlich,StartUndaktivierender postgresql.service.
was bedeuten würde systemctl enable postgresql.service
und systemctl start postgresql.service
,im GegensatzZu pg_ctl [...options...] start
.
Antwort2
Ich möchte hinzufügen, dass ich gerade ein ähnliches Problem mit Postgresql 10 unter Ubuntu hatte. Das could not open PID file “/var/lib/postgres/data/postmaster.pid”
ist es, was mich hierher gebracht hat. Ich habe vergeblich Dinge ausprobiert, die ich hier und anderswo gelernt habe, und bin dann auf den uralten Neustart zurückgegriffen. Und alles hat gut geklappt. Na ja. Ich kann nicht sagen, dass ich viel gelernt habe oder dass es viel lehrt, außer: Denken Sie daran, einen Neustart zu versuchen ...