web-dev-qa-db-ger.com

Läuft der Server auf dem Host "localhost" (:: 1) und akzeptiert TCP/IP-Verbindungen an Port 5432?

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:

  • Ich habe eine Rails-App, die wie ein Zauber wirkt.
  • Mit meinem Mitarbeiter arbeiten wir mit GitHub zusammen.
  • Wir haben eine master- und eine mvp-Verzweigung.
  • Ich habe vor kurzem meine git-Version mit Homebrew (Mac) aktualisiert.
  • Wir verwenden Foreman, um unsere App lokal zu starten.

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?

23
Thibaud Clement

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/ ).

26
Graham Slick

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.

40
user8376606

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

19
Nishant

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.

11
Shiva89

Das hat in meinem Fall funktioniert:

brew uninstall postgresql
rm -fr /usr/local/var/postgres/
brew install postgresql
8
Tan

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.

  1. 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.

  2. PID-Datei entfernen

    rm postmaster.pid

  3. Postgress neu starten. Auf dem Mac,

    brühservices starten Postgresql neu

1
Aman Kumar

Wenn Sie Postgresql unter Linux neu starten möchten, müssen Sie den folgenden Befehl verwenden.

/etc/init.d/postgresql restart

1
coderanger

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
1
techdreams

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
1
Talha Meh

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.

0
管浩浩

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.

0
vonvick

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
0

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.

0
Saif chaudhry