webentwicklung-frage-antwort-db.com.de

Postgres.app Konnte an Port 5432 nicht gestartet werden

Ich benutze http://postgresapp.com . In der Menüleiste wird der Fehler "An Port 5432 konnte nicht gestartet werden" angezeigt. Wenn ich versuche, den Server vom Terminal aus zu starten, erhalte ich Folgendes:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Ich habe auch pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start Ausgeführt und die Ausgabe server starting erhalten, bekomme aber immer noch die gleichen Fehler, wenn ich mich mit psql verbinde.

32
Chris

Sie können eine andere Instanz von Postgres ausführen, die einzige Anwendung, die sich für diesen Port interessiert. Sie sollten netstat und ps verwenden, um dies festzustellen. Stoppen Sie dann die Instanz und deinstallieren Sie sie. Sie haben möglicherweise enterpiseDb installiert.

12
Paul McLachlan

Wenn Sie Ihren Server auf einem macOS-Computer ausführen und Postgres über Homebrew installiert haben, können Sie die aktuelle Instanz folgendermaßen stoppen:

brühservices stoppen Postgresql

Klicken Sie dann auf den Elefanten in der Menüleiste und der Startvorgang wird erfolgreich gestartet.

34
Max von Hippel

Ich hatte gerade genau dieses Problem. Als ich which psql lief, zeigte es auf die mit Lion installierten Postgres-Client-Tools:

/usr/bin/psql

Mit einem Hinweis aus Frank Wiles lief ich ps auxw | grep post, um zu bestätigen, dass Postgres ausgeführt wurde und auf dem richtigen Port ausgeführt wurde. Dies zeigte mir auch den Pfad postgres.app:

/Applications/Postgres.app/Contents/MacOS/bin/postgres

Also habe ich von .bash_profile bearbeitet, um dieses Verzeichnis zu exportieren. Auf den ersten Versuch habe ich es am Ende des Pfades hinzugefügt. Als ich echo $PATH lief, konnte ich sehen, dass usr/bin das erste im Pfad war und which psql noch den /usr/bin-Pfad angab. Zu diesem Zeitpunkt führte mich ein Freund in die richtige Richtung:

export PATH="/Applications/Postgres.app/Contents/MacOS/bin:${PATH}"

Starten Sie ein neues Terminalfenster, und führen Sie which psql aus. Es sollte auf die Position postgres.app zeigen und psql sollte die postgres-Shell starten. Funktioniert jetzt gut.

21
eezis

Sie können den Vorgang anhalten, indem Sie die PID mit suchen 

lsof -i :5432

und dann mit töten 

kill -9 <PID>
14
Некто

Wenn Sie Postgres über eine andere Methode installiert haben (z. B. von www.postgresql.org) und automatisch beim Start gestartet werden, können Sie verhindern, dass Postgres über Folgendes startet:

Sudo launchctl unload /Library/LaunchDaemons/com.edb.launchd.postgresql-X.X.plist  
Sudo rm -f /Library/LaunchDaemons/com.edb.launchd.postgresql-X.X.plist  

TIP: Verwenden Sie die Registerkarte, um nach dem com.edu.launchd-Teil eine automatische Vervollständigung durchzuführen, um herauszufinden, welche Version geladen wird.

Starten Sie Postgres.app neu und Sie sollten sich gut fühlen.

(von http://forums.enterprisedb.com/posts/list/1831.page;jsessionid=70621DC48C99EDE663A6A594B05F1A02#6782 )

14
Jamon Holmgren

Ich habe fast jede Lösung für dieses Problem ausprobiert. Für mich passiert das immer dann, wenn der Akku meines MacBook leer ist, auch wenn der Computer bereits im Ruhezustand ist. Ich stöberte in ~/Library/Application\ Support/Postgres/var-9.4 herum und entdeckte eine andere postmaster.pid-Datei, die ich vorher noch nicht gesehen hatte. Ich habe es gelöscht und jetzt ist alles wieder betriebsbereit! Ich verwende die Postgres.app-Version, nicht die Brew-Version. 

Schritte, die ich gemacht habe:

  1. Stellen Sie sicher, dass postgres.app nicht ausgeführt wird.
  2. rm ~/Library/Application\ Support/Postgres/var-9.$X/postmaster.pid ausführen
  3. Wenn Sie kein var-9.$X-Verzeichnis haben, führen Sie einfach rm ~/Library/Application\ Support/Postgres/postmaster.pid aus.
  4. postgres.app neu starten
  5. Kommen Sie zurück, um coole Sachen zu entwickeln.
14
Daniel Bonnell

Es kann auch vorkommen, dass die PID übernommen wird. Dies trat bei einem unerwarteten Neustart des Computers auf.

Wenn ja, müssen Sie zu:

˜/Library/Application Support/Postgres/var-9.4

Sie können diesen Pfad im Dialogfeld Voreinstellungen von Postgres.app überprüfen.

Und dann einfach die PID-Datei entfernen

Sudo rm postmaster.pid

Und der Server startet sofort.

5
Lomefin

Ich hatte ein ähnliches Problem, bei dem ich keine Verbindung zur Postgres.app herstellen konnte, obwohl die App selbst sagte, dass sie auf Port 5432 läuft. 

Ich bin mir nicht sicher warum, aber auch wenn ich die App beendet habe und überprüft habe, dass keine Postgres-Prozesse mit ps -a laufen. Diese Dateien bestanden:

/tmp/.s.PGSQL.5432

und

/tmp/.s.PGSQL.5432.lock

Meine Lösung bestand darin, diese Dateien zu löschen und die postgres.app erneut zu starten.

5
ksnabb

Beim Versuch, die Postgres-App zu öffnen, wurde derselbe Fehler bezüglich Post 5432 (unter Mac OS X 10.10.5) angezeigt.

Ich tat: 

$ lsof -i | grep LISTEN

Sah, welche PID an diesem Port Postgres ausführte, tat: $ killall {pid} und dann $ brew uninstall postgres 

Danach habe ich meinen Mac neu gestartet und lief:

$ lsof -i | grep LISTEN wieder nur um sicher zu gehen. Ich sah keine Postgres irgendwo laufen und konnte die Postgres App öffnen, ohne diese Warnung zu erhalten. 

Dann habe ich Postgres mit $ brew install postgres neu installiert.

ANDERE OPTION

(Ich habe es auch einmal probiert, als der obige Ansatz nicht funktionierte und ich keine der PID töten konnte.) 

$ ps auxw | grep post

Sah ein Postgre-Verfahren, das ich dann Sudo kill <PID> 

Alles funktioniert jetzt gut. 

Irgendwann hatte Port 5432 etwas anderes angenommen, sodass die App stattdessen auf 5433 ausgeführt wurde. 

Warum nicht einfach eine Verbindung zu Pg an Port 5433 herstellen, wenn es dort läuft? Sie haben eine /tmp/.s.PGSQL.5432-Socketdatei, so dass Sie sich mit psql -p 5433 für UNIX-Domänensocketverbindungen verbinden können. Außerdem wird TCP/IP über denselben Port abgehört, sodass Sie psql -h localhost -p 5433 für TCP/IP verwenden und Ihre Apps eine Verbindung zu Port 5433 anstelle von 5432 herstellen können.

Ändern Sie Ihren .psqlrc, um den neuen Port als Standard festzulegen, und Sie können vergessen, dass der Standardport nicht angegeben ist.

2
Craig Ringer

Meine startete nicht plötzlich, und als ich Console.app überprüfte, sah ich: 

com.heroku.postgres-service: 
FATAL:  could not create shared memory segment: Cannot allocate memory
DETAIL:  Failed system call was shmget(key=5432001, size=3874816, 03600).
HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory or swap space, or exceeded your kernel's SHMALL parameter.  You can either reduce the request size or reconfigure the kernel with larger SHMALL.  To reduce the request size (currently 3874816 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
The PostgreSQL documentation contains more information about shared memory configuration.

Es stellte sich heraus, dass Postgres nicht starten würde, weil Wireshark (und X11) laufen mussten. Es hat gut funktioniert, nachdem ich Wireshark verlassen habe. 

Viel Glück! 

1
Colin

Irgendwie habe ich total vergessen, dass diese Socket-Datei wegen des Punktes ausgeblendet wird. Stellen Sie sicher, dass Sie ls -A /tmp/.s.PGSQL.5432 verwenden, wenn Sie prüfen, ob der Socket tatsächlich vorhanden ist.

1
David Winiecki

Ich habe dieses Problem durch gelöst 

  1. Feststellen, was auf Port 5432 ausgeführt wurde, indem "netstat" in der CL verwendet wird, was postgreSQL und nicht Postgres war
  2. Ich fand das Verzeichnis, in dem sich postgreSQL befand, und zwar root/Library/PostgreSQL
  3. Ich habe sichergestellt, dass Instanzen der Anwendung nicht über Activity Monitor ausgeführt wurden
  4. Dann habe ich den Ordner gelöscht und neu gestartet! Alles war gut!
1
Vishal Sakaria

Ich hatte ein ähnliches Problem beim Versuch, Postgresql mit Rails zu verwenden. Das Aktualisieren meiner Gemfile-Datei zur Verwendung der neuen Version von Gem PG löst dieses Problem für mich. (gem pg version 0.16.0 funktioniert). In der Gemfile verwenden:

gem 'pg', '0.16.0'

führen Sie dann die folgenden Schritte aus, um den Edelstein zu aktualisieren

bundle install --without production
bundle update
bundle install
1
andr3wll

neben den hilfreichen Antworten sollten Sie auch die offiziellen Seitenanweisungen lesen: postgressapp.com/documentation/remove.html

1
Lily bentham

Dieser Befehl ist ein Einzeiler, der alle PostgresSQL-Prozesse sofort beendet.

Sudo kill -kill $(Sudo lsof -t -i :5432)

Damit wurden alle meine Probleme unter Mac OSX Mojave 10.14.1 behoben.

1
Aaron Becker

Ich hatte die gleichen Probleme:

 psql: Verbindung zum Server konnte nicht hergestellt werden: Keine solche Datei oder Verzeichnis 
 Läuft der Server lokal und akzeptiert 
 Verbindungen auf Unix-Domain-Socket "/tmp/.s.PGSQL.5432"?

In meinem Fall war es eine beschädigte Host-Datei auf meinem Mac. Ich habe gefehlt:

 127.0.0.1 localhost 

Eine schnelle und einfache Möglichkeit zum Überprüfen ist das Öffnen des Terminals und die Eingabe:

 ping localhost 

oder:

scutil -r localhost

Mehr Infos hier Hoffe es hilft.

0
Kris Utter

Eine Datei namens "postmaster.pid" (in meinem $ PGDATA-Verzeichnis) hinderte Postgresql am Starten. Es war eine Zombie-Datei, die vor 10 Tagen dort abgelegt wurde. Als ich den Computer brutal heruntergefahren habe (buchstäblich den Stecker ziehen), hatte kein Bereinigungsprozess die Möglichkeit, diese Datei zu entfernen. 

0
Yanik Crépeau

Wahrscheinlich haben Sie eine PostgreSQL-Software installiert, gelöscht und erneut installiert. PostgreSQL verwendete normalerweise Port 5432, steigt jedoch, falls nicht verfügbar, auf den nächsten verfügbaren, in diesem Fall 5433. Sie haben diesen Port bei Ihrer zweiten Installation wahrscheinlich ausgewählt.

Ich denke, du solltest die Datei überprüfen:

/etc/services  

und passen Sie die folgenden Zeilen an Ihre erwartete Portnummer an:

postgresql 5432/udp # PostgreSQL-Datenbank

postgresql 5432/tcp # PostgreSQL-Datenbank

Danach sollten Sie Ihren Computer neu starten (auf einfachste Weise). 

0
Sabin Chirila

Das gleiche Problem ist mir gerade passiert. Ich hatte Postgres.app 9.2.4.1 seit einiger Zeit ausgeführt. Als ich Mac OS X auf 10.8.5 aktualisiert habe, funktionierte es nach dem obligatorischen Neustart nicht mehr. Ich habe verschiedene Dinge ausprobiert, einschließlich des Updates auf 9.2.4.3. Nach einem Neustart funktionierte es auch nicht.

Ich musste die Datei /Users/$USER/Library/Application Support/Postgres/var/postgresql.conf öffnen und:

  1. kommentarzeile unix_socket_permissions = 0777
  2. unkommentieren und Zeile anpassen unix_socket_directory = '/tmp'

Nach einem Neustart lief Postgres.app wie ein Zauber.

0
Rmatt

Netstat, ps aux, etc ... keiner zeigte 5432 im Einsatz. Geprüft/Bibliothek. PG9.6 alte Installation noch dort gefunden. Habe rm -rf und bang. Version 11 funktioniert gut.

0