2013-06-21 4 views
8

Ich bin für Homebrew-Installationen von Postgres einen gemeinsamen Mac OSX Fehler bekommen,Mac OSX Lion Postgres akzeptiert keine Verbindungen auf /tmp/.s.PGSQL.5432

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

Dies ist offenbar wegen da zu sein mehrere Installationen auf dem System. Die üblichen Schritte lösen die Dinge jedoch nicht auf.

Ich kann erfolgreich gestartet Postgres und Laufen:

ps auxw | grep post 

kehrt ..

euanmillar  847 0.0 0.0 2432768 588 s000 R+ 11:19am 0:00.00 grep postgres 
euanmillar  845 0.0 0.0 2439324 448 ?? Ss 11:19am 0:00.00 postgres: 
stats collector process 
euanmillar  844 0.0 0.0 2443176 1520 ?? Ss 11:19am 0:00.00 postgres: 
autovacuum launcher process 
euanmillar  843 0.0 0.0 2443044 544 ?? Ss 11:19am 0:00.00 postgres: wal writer process 
euanmillar  842 0.0 0.0 2443044 584 ?? Ss 11:19am 0:00.00 postgres: writer process 
euanmillar  841 0.0 0.0 2443044 596 ?? Ss 11:19am 0:00.00 postgres: checkpointer process 
euanmillar  839 0.0 0.0 2443044 3616 s000 S 11:19am 0:00.02 /us 

so sieht es aus wie Postgres läuft.

Ich habe in den folgenden Zeilen in postgresql.conf kommentiert

port = 5432 
unix_socket_directory = '/var/pgsql_socket' 
unix_socket_permissions = 0777 

und in var/pgsql_socket/ich eine versteckte Datei

.s.PGSQL.5432 haben

I-Lösungen haben versucht, viele der Beiträge hier. Dies scheint besonders ähnlich:

https://dba.stackexchange.com/questions/21587/postgresql-is-running-locally-but-i-cannot-connect-why

Aber der Unterschied ist, dass ich ein ‚/ var/pgsql_socket‘ Verzeichnis habe, die CHOWN-ed zu jedermann. Ich habe Homebrew verwendet, um Postgres vollständig zu entfernen und neu zu installieren, und trotzdem habe ich das gleiche Problem.

+1

Die 'ps' Ausgabe zeigt, dass postgres ** nicht ** läuft. Siehe [eine andere Frage] (http://dba.stackexchange.com/questions/21587) für eine Beispielausgabe, wenn sie ausgeführt wird. Der erste Schritt besteht darin, den Server mit den Homebrew-Anweisungen zu starten. –

+0

Ihre Beschreibung ist verwirrend '/ var/postgresql' und'/var/pgsql_socket'. –

+0

Danke für die Hilfe und Entschuldigung, wenn meine Beschreibung ein wenig verwirrend ist. –

Antwort

1

Dies ist kein OS X-spezifisches Problem. Sie müssen Ihre Postgres-Installation bereinigen und dann erneut installieren. Ich habe dieses Problem auf meinem Ubuntu 12.04 konfrontiert. Während Sie Ihre vorherige Installation bereinigen, müssen Sie alle Pakete entfernen, die mit postgres beginnen (postgresql, postgresql-common, postgresql-client usw.), mit anderen Worten, postgres *. Ich habe kein Gebräu benutzt, habe den Port unter OS X Lion benutzt. Ich denke, der entsprechende Befehl sollte sudo brew remove postgres* sein. Ein sudo brew install postgresql sollte dann den Trick machen.

Wenn Sie der Meinung sind, dass der Server bereits ausgeführt wird, können Sie versuchen sudo -u postgres createuser. Wenn das fehlschlägt, müssen Sie neu installieren.

Allerdings ist die Ausgabe Ihres ps aux | grep post tatsächlich der Grep-Befehl selbst. Nicht vom Postgres-Server ausgeführt.

EDIT: Sieht so aus, als könnte der folgende Link hilfreich sein https://dba.stackexchange.com/questions/21587/postgresql-is-running-locally-but-i-cannot-connect-why Wenn ja, dann könnte diese Frage ein Duplikat sein.

+0

Danke. Ich habe diesen Ratschlag, insbesondere den Ratschlag in der SO-Verknüpfung, befolgt und meinen ursprünglichen Beitrag geändert. Leider habe ich dieses Problem immer noch. –

9

Eine einfachere Lösung besteht darin, zu lokalisieren, wo sich der Socket tatsächlich befindet und wo er erwartet wird. In meinem Fall lief ich:

$ locate PGSQL.5432 
/private/var/pgsql_socket/.s.PGSQL.5432 
/private/var/pgsql_socket/.s.PGSQL.5432.lock 

Dann nur Symlink den erwarteten Socket-Standort an den tatsächlichen Socket-Standort.

$ ln -s /private/var/pgsql_socket/.s.PGSQL.5432 /tmp/.s.PGSQL.5432 
2

Der Systemclient wird verwendet und nicht Ihre Brühversion. Der Symlink-Ansatz dauert nur bis zum nächsten Neustart.Dieser Ansatz legt die Wurzel Problem, das ich

  1. sudo bearbeiten /etc/paths
  2. Verschieben Sie die Zeile mit /usr/local/bin an die Spitze der Datei glauben. (Vor /usr/bin)
  3. Deinstallieren der Postgres-Juwel (n) (gem uninstall pg)
  4. neue Shell starten bis zu den neuen Umgebungseinstellungen laden
  5. bundle
14

für mich, ich entfernt postmaster.pid in /usr/local/var/postgres . reparierte mich richtig.

30

Sie müssen die postmaster.pid entfernen, die in dem folgenden Pfad sein sollte: /usr/local/var/postgres/postmaster.pid

0

ich das gleiche Problem auf Mac Serria hatte. In Mac Serria können Sie postmaster.pid innerhalb /Users/<user_name>/Library/Application Support/Postgres/var-9.6 finden, wenn Sie GUI-Installer statt Homebrew verwendet haben.

Sobald Sie diese Datei löschen, sollte alles gut funktionieren.

Verwandte Themen