PostgreSQL läuft nicht auf Mac

55

Der Fehler in seiner Gesamtheit lautet:

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

Dies ist mein zweites Mal, dass ich Postgresql über Homebrew auf meinem Mac einrichte, und ich habe keine Ahnung, was los ist. Zuvor hatte es funktioniert. Irgendwann muss ich einen Befehl eingegeben haben, der die Dinge durcheinander gebracht hat. Ich bin mir nicht sicher. Wenn ich jetzt einen SQL-Befehl über die Befehlszeile eingebe, erhalte ich die obige Meldung. Ich habe einen Befehl ausgeführt, um zu überprüfen, ob der Server ausgeführt wird, und dies ist anscheinend nicht der Fall. Wenn ich versuche, den Server mit zu starten

$ postgres -D / usr / local / pgsql / data

Ich erhalte folgende Fehlermeldung:

postgres kann nicht auf die Serverkonfigurationsdatei "/usr/local/pgsql/data/postgresql.conf" zugreifen: Keine solche Datei oder kein solches Verzeichnis

Ich habe Postgresql über Homebrew deinstalliert und neu installiert, aber das Problem besteht weiterhin. Ich bin völlig ratlos, wie ich das hinbekomme. Jede Hilfe wäre dankbar.

Michael P.
quelle

Antworten:

51

Das Problem kann auch auf einen abgestürzten Prozess zurückgeführt werden, der die postmaster.pidDatei zurückgelassen hat.

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql
demisx
quelle
4
Unter MacOSX hat mich diese Antwort gerettet. Hatte den gleichen Fehler wie OP nach einem harten Neustart meines Computers. Der brew servicesBefehl war nicht hilfreich, weil es so aussah, als würde alles funktionieren. Das Entfernen der postmaster.pidhat endlich alles wieder zum Laufen gebracht. Vielen Dank!
Vinhboy
1
Das ist mir auch passiert. Ein harter Absturz von Mac OS X verursachte einen Neustart, nachdem Postgres nicht mehr gestartet wurde. Das Starten / Stoppen / Neustarten der Brühdienste funktioniert nicht. Sie müssen die PID-Datei manuell entfernen.
Matthijs
Der empfohlene Weg wäre natürlich, Postgres in einem Docker-Container auszuführen. Sehr einfach zu starten und alles wird aufgeräumt, wenn ein Container heruntergefahren wird. Ich würde sagen, dass das Ausführen von Anwendungen von Drittanbietern in einem Docker-Container heutzutage de facto sein sollte.
demisx
43

Die Antwort ist da .

Führen Sie diesen Befehl aus, um den Server manuell zu starten:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Michael P.
quelle
14

Mir ging es genauso

Is the server running locally and accepting connections on Unix domain 
socket "/tmp/.s.PGSQL.5432"?

Schleife von Homebrew installieren / starten / stoppen / neu starten ohne Erfolg ...

Schließlich hat es brew postgresql-upgrade-databasefunktioniert.

Anscheinend war ich auf 9.6 anstatt auf 10.4 und mein letzter Neustart im App Store hat alle meine Datenbankserver neu gestartet ...

senbenito
quelle
das hat bei mir
funktioniert
Das brew postgresql-upgrade-databasehat mir gefehlt. Vielen Dank für den Hinweis.
Corin
Arbeitete für mich danke!
Erwin Rooijakkers
Ich habe alle Lösungen ausprobiert. Aber das ist der einzige, der für mich gearbeitet hat. Es wäre toll zu wissen, ob jemand erklären könnte, warum dies vollständig behoben wurde.
JohnnyQ
11

Ich habe gerade das gleiche Problem gelöst. Es liegt nur daran, dass ich vergessen habe , es vor der Verwendung ordnungsgemäß auszuführen .

Für die reine Installation postgresql unter Mac OS lautet der Vorgang (mit dem Befehl brew ):

brew install postgresql

dann, wenn Sie automatisch postgresqlbei der Anmeldung ausgeführt werden möchten :

ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

oder Sie möchten es einfach ausführen, wann immer Sie möchten:

postgres -D /usr/local/var/postgres

Wenn Ihr Fall komplizierter ist, brew uninstall postgresqlwiederholen Sie diese Schritte.

Ich hoffe es hilft!

Hoang Le
quelle
1
Update: für Homebrew-installed Postgres, brew services start postgresqlist jetzt der bevorzugte Weg , Postgres bei der Anmeldung zu beginnen
henry
5
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket"/var/pgsql_socket/.s.PGSQL.5432"?

Ich habe den oben genannten Fehler immer wieder festgestellt und keine der oben genannten Lösungen hat für mich funktioniert. Schließlich hat die folgende Lösung mein Problem unter Mac OS X gelöst

Installieren Sie Postgres mit Brew

brew install postgres

Installieren Sie die Brühdienste

brew tap homebrew/services

So starten Sie postgres als Hintergrunddienst

brew services start postgresql

Um Postgres manuell zu stoppen

brew services stop postgresql

Wir können auch Brau-Services verwenden, um Postgres neu zu starten

brew services restart postgresql
Sudharshan
quelle
2

Dies passiert, wenn der Postgres-Server nicht läuft. Schritte zum korrekten Installieren von Postgres über Homebrew auf MAC:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [Dies initialisiert postgres, um das angegebene Verzeichnis als Datenbankverzeichnis zu verwenden. Normalerweise wird davon abgeraten, das Benutzerverzeichnis für die Datenbankspeicherung zu verwenden. Bearbeiten Sie die sudoers-Datei, um initdb und ähnliche Befehle hinzuzufügen, und führen Sie dann initdb unter / usr / local / var / postgres aus.

  3. pg_ctl -D /Users/<username>/db -l logfile start [Nachdem Sie mit Schritt 2 erfolgreich waren, werden Sie aufgefordert, Schritt 3 auszuführen. Dieser Befehl startet den Server manuell.]

Souvik Das
quelle
2

Es hat bei mir funktioniert. Ändern Sie Ihr postgresql-Verzeichnis entsprechend der Version in Ihrem System.

Gemeinsamer Pfad rm /usr/local/var/postgres/postmaster.pid

aber für [email protected] in meinem systempfad steht rm /usr/local/var/[email protected]/postmaster.pid

starte [email protected] neu brew services restart [email protected]

rahulworld
quelle
yup das ist die EINE, die funktioniert!
PirateApp
1

Ich kommentiere gerade in /etc/postgresql/9.5/main/postgresql.conf aus

unix_socket_permissions = 0777

und starte postgres neu. Und bei mir funktioniert es.

Roxana
quelle
1

vor kurzem bin ich durch ein ähnliches Problem gegangen. Es gibt nur ein anderes Problem und eine andere Lösung. Ich habe 2 Versionen von postgres (9.3 und 9.6) ausgeführt, obwohl der Server auf 2 verschiedene Ports eingestellt war, aber einige, wie der psql-Befehl bei Bash versucht, eine Verbindung zum Standardport 5432 herzustellen. Überprüfen Sie, ob Ihr Server ausgeführt wird und prüfen Sie, ob er ausgeführt wird Ihre Port-Einstellungen, dann ausführen psql -p <port> postgres. Die Lösung ändert den Port.

Regen
quelle
1

Ich habe lange gesucht, und das war die sauberste und sauberste Lösung:

Ich habe kürzlich ein Upgrade von Postgres von 9.2 auf 9.3 mit Brew Upgrade Postgres durchgeführt. Der Prozess verlief reibungslos und pg_upgrade ist ein sehr nützliches Tool.

Es gab jedoch Probleme, als ich versuchte, die Spezifikationen auszuführen, die für die Verbindung mit Postgres erforderlich waren. Obwohl Postgres definitiv lief, bekam ich plötzlich:

Verbindung zum Server konnte nicht hergestellt werden: Keine solche Datei oder kein solches Verzeichnis (PG :: ConnectionBad) Wird der Server lokal ausgeführt und akzeptiert Verbindungen auf dem Unix-Domain-Socket "/var/pgsql_socket/.s.PGSQL.5432"? Das Problem war, dass die neue Version von Postgres stattdessen auf /tmp/.s.PGSQL.5432 lauscht. Ich hätte mit der Konfiguration herumspielen und Postgres dazu bringen können, den zuvor verwendeten Domain-Socket zu verwenden, oder Rails explizit mitteilen können, wie eine Verbindung hergestellt werden soll, aber diese beiden Ansätze schienen Arbeit zu sein, die ich nicht tun müsste. Zu keinem Zeitpunkt hatte ich Rails angewiesen, sich auf diesem Weg mit Postgres zu verbinden, Rails hatte es angenommen, und jetzt waren seine Annahmen falsch.

Das Update ist einfach, wenn auch ein wenig überraschend. Wenn Sie das Gem 'pg' installieren, erkennt es, welche Version von Postgres installiert ist, und legt den Domain-Socket-Pfad entsprechend fest. Die Lösung ist so einfach wie die Neuinstallation des Edelsteins. $ gem uninstall pg $ cd my-rails-app/ $ bundle install

http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrade-postgres/

Jalebaro
quelle
1
Bitte bearbeiten Sie Ihre Antwort, damit sie einen Wert liefert, wenn der Link nicht mehr funktioniert . Anleitungen dazu finden Sie unter Referenzieren von Material, das von anderen verfasst wurde . Danke.
Paul White
0

Aktualisieren Sie es mit dem Befehl

  brew postgresql-upgrade-database

Wenn Sie folgenden Fehler haben, wird der Befehl 'brew' nicht gefunden, kann aber mit folgendem Befehl installiert werden: sudo apt install linuxbrew-wrapper

Installieren Sie es dann mit dem Befehl

 sudo apt install linuxbrew-wrapper
Nadeem Qasmi
quelle
-3

Die folgenden Schritte helfen mir:

deinstallieren postgresql installieren postgresql installieren postgresql-upgrade-datenbank

BMA88
quelle