Beachten Sie vor allem, dass ich mehrere ähnliche Fragen zu Stack Overflow und Artikeln im Web gefunden habe, aber keine dieser Fragen hat mir geholfen, mein Problem zu beheben:
Nun, hier ist das Problem:
master
- und eine mvp
-Verzweigung.git
-Version mit Homebrew (Mac) aktualisiert.Wenn ich jetzt versuche, die App lokal zu starten, erhalte ich die folgende Fehlermeldung:
PG::ConnectionBad at /
could not connect to server: Connection refused
Is the server running on Host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on Host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
Ich habe mehrmals versucht, meine Computer neu zu starten.
Ich habe auch den Inhalt von /usr/local/var/postgres
überprüft:
PG_VERSION pg_dynshmem pg_multixact pg_snapshots pg_tblspc postgresql.conf
base pg_hba.conf pg_notify pg_stat pg_twophase postmaster.opts
global pg_ident.conf pg_replslot pg_stat_tmp pg_xlog server.log
pg_clog pg_logical pg_serial pg_subtrans postgresql.auto.conf
Wie Sie sehen, ist dort keine postmaster.pid
-Datei.
Irgendeine Idee, wie ich das reparieren könnte?
Die Batterie ist höchstwahrscheinlich erschöpft und der Postgresql-Server wurde nicht ordnungsgemäß heruntergefahren.
Die einfachste Problemumgehung besteht darin, die offizielle Postgresql-App herunterzuladen und zu starten: Dadurch wird der Server zwangsweise gestartet ( http://postgresapp.com/ ).
führen Sie postgres -D /usr/local/var/postgres
aus und Sie sollten Folgendes sehen:
FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 379) running in data directory "/usr/local/var/postgres"?
Führen Sie dann kill -9 PID
in TIPP aus
Und du solltest gut sein.
Wahrscheinlich liegt es daran, dass Ihr System unerwartet heruntergefahren ist
Versuchen
postgres -D /usr/local/var/postgres
Sie könnten sehen
FATAL: lock file "postmaster.pid" already exists HINT: Is another postmaster (PID 449) running in data directory "/usr/local/var/postgres"?
Dann versuche es
kill -9 PID
beispiel
kill -9 419
Und es sollte normal Postgres beginnen
Es könnte so einfach sein, wie der Postgresql-Dienst ausgefallen ist. Laufen Sie mal:
Sudo service postgresql start
was das Problem für mich behoben hat.
Das hat in meinem Fall funktioniert:
brew uninstall postgresql
rm -fr /usr/local/var/postgres/
brew install postgresql
Dies kann sein, da die für den Postgress erstellte PID-Datei aufgrund eines unerwarteten Herunterfahrens nicht gelöscht wurde. Um dies zu beheben, entfernen Sie diese PID-Datei.
Finden Sie das Postgres-Datenverzeichnis. Auf einem MAC mit Homebrew ist dies /usr/local/var/postgres/
, bei anderen Systemen kann es /usr/var/postgres/
sein.
PID-Datei entfernen
rm postmaster.pid
Postgress neu starten. Auf dem Mac,
brühservices starten Postgresql neu
Wenn Sie Postgresql unter Linux neu starten möchten, müssen Sie den folgenden Befehl verwenden.
/etc/init.d/postgresql restart
Ich habe das Problem mit diesem Befehl gelöst
pg_ctl -D /usr/local/var/postgres start
Manchmal erhalten Sie diese Fehlermeldung
pg_ctl: another server might be running; trying to start server anyway
Versuchen Sie also, den folgenden Befehl auszuführen, und führen Sie dann den ersten oben angegebenen Befehl aus.
pg_ctl -D /usr/local/var/postgres stop
Ich hatte fast den gleichen Fehler mit meiner Ruby on Rails) -Anwendung, die postgresql (mac) ausführt. Das hat bei mir funktioniert:
brew services restart postgresql
Dieses Problem tritt häufig unter Windows auf. Die Art und Weise, wie ich das Problem gelöst habe, ist "Service - Click PostgreSQL Database Server 8.3". - Klicken Sie auf die zweite Registerkarte "Anmelden" - wählen Sie die erste Zeile "das lokale Systemkonto" aus.
Das hat für mich funktioniert: Run
Sudo lsof -i :<port_number>
danach wird die PID angezeigt, die aktuell an den Prozess angehängt ist.
Nach diesem Lauf Sudo kill -9 <PID>
wenn dies nicht funktioniert, versuchen Sie es mit der Lösung von user8376606.
Für Docker Benutzer: In meinem Fall wurde dies durch eine zu große Docker-Bildgröße verursacht. Sie können nicht verwendete Daten mit dem Befehl Prune
entfernen:
docker system Prune --all --force --volumes
Warnung: gemäß Handbuch (docker system Prune --help
):
Dies entfernt:
- alle angehaltenen Container
- alle Netzwerke, die nicht von mindestens einem Container verwendet werden
- alle baumelnden Bilder
- alle baumelnden Build-Cache
Zuerst habe ich es versucht
lsof -wni tcp: 5432, zeigt aber keine PID-Nummer an.
Zweitens habe ich es versucht
Postgres -D/usr/local/var/postgres und es zeigte, dass der Server lauscht.
Also habe ich gerade meinen Mac neu gestartet, um alle Ports wiederherzustellen und es hat bei mir funktioniert.