Ich habe gerade meinen MacMini Server mit OS X Server von Lion Server auf Mountain Lion aktualisiert. Ich habe das gleiche Problem mit PostgreSQL wie letztes Jahr, als ich Lion Server zum ersten Mal installiert habe.
Wenn ich versuche, einen PostgreSQL-Terminalbefehl auszuführen, wird die folgende berüchtigte Fehlermeldung angezeigt, die viele im Laufe der Jahre erhalten haben:
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 versucht, das Passwort für _postgres zu ändern, als ich den Fehler bekam. Ich habe mehrere Befehle ausprobiert, aber den gleichen Fehler erhalten. Ich habe gerade meinen Server neu gestartet, aber kein Glück. Ich habe mich als root angemeldet, um / var / pgsql_socket anzusehen, und der Ordner ist leer. Der Ordner / var / pgsql_socket_alt ist ebenfalls leer.
Ich habe dies online überprüft. Fast alle Lösungen, die ich gelesen habe, einschließlich Stack Overflow, schlagen jedoch vor, PostgreSQL zu entfernen und neu zu installieren. Ich weiß es nicht, aber dies scheint keine plausible Option zu sein, da mehrere Optionen in der Server-App PostgreSQL verwenden. Ich habe den Apple Enterprise Support kontaktiert (keine Vereinbarung) und mir wurde gesagt, dass mein Problem von den Entwicklern gelöst werden muss, die 695 US-Dollar ausgeben würden.
Ich habe eine Website, die gerade nicht verfügbar ist, da ich sie nicht neu erstellen kann. Ich weiß derzeit nicht, an wen ich mich wenden soll, um Hilfe zu erhalten. Ich werde weiterhin online suchen, um zu sehen, ob ich etwas finden kann. Ich hoffe jedoch, dass mir jemand schnell eine Antwort geben kann, damit ich meine Datenbank neu erstellen kann.
Update: 13.12.2012 15:33 GMT-6
Hier ist meine Ausgabe für ps auwwx | grep postg:
_postgres 28123 0.0 0.1 2479696 7724 ?? Ss 3:01PM 0:00.04 /Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D /Library/Server/PostgreSQL For Server Services/Data -c listen_addresses= -c log_connections=on -c log_directory=/Library/Logs/PostgreSQL -c log_filename=PostgreSQL_Server_Services.log -c log_line_prefix=%t -c log_lock_waits=on -c log_statement=ddl -c logging_collector=on -c unix_socket_directory=/Library/Server/PostgreSQL For Server Services/Socket -c unix_socket_group=_postgres -c unix_socket_permissions=0770
server1 28216 0.0 0.0 2432768 620 s000 R+ 3:02PM 0:00.00 grep postg
_postgres 28138 0.0 0.0 2439388 752 ?? Ss 3:01PM 0:00.01 postgres: stats collector process
_postgres 28137 0.0 0.0 2479828 1968 ?? Ss 3:01PM 0:00.00 postgres: autovacuum launcher process
_postgres 28136 0.0 0.0 2479696 544 ?? Ss 3:01PM 0:00.00 postgres: wal writer process
_postgres 28135 0.0 0.0 2479696 732 ?? Ss 3:01PM 0:00.01 postgres: writer process
_postgres 28134 0.0 0.0 2479696 592 ?? Ss 3:01PM 0:00.00 postgres: checkpointer process
_postgres 28131 0.0 0.0 2439388 368 ?? Ss 3:01PM 0:00.00 postgres: logger process
Update: 13.12.2012 18:10 GMT-6
Nach intensiver Websuche wurde dieses Video gefunden. Ich konnte PostgreSQL zum Laufen bringen und den Fehler beseitigen. Ich kann eine Verbindung mit pgadmin und phppgadmin herstellen. Ich wollte gerade vor lauter Frustration zu Lion Server zurückkehren. Jetzt muss ich nicht.
quelle
psql
ist auf derPATH
vor der Version Sie installiert haben . Sie suchen an verschiedenen Stellen nach dem Unix-Socket. Verwenden Sie entweder tcp / ip, indem Sie angeben,-h localhost
oderPATH
korrigieren Siepsql
es vorzugsweise, damit zuerst das richtige gefunden wird. Die bizarre Entscheidung von Apple, PostgreSQL nicht nur zu bündeln, sondern auch damit herumzuspielen, damit Dinge an nicht standardmäßigen Orten platziert werden, ist die Hauptursache für dieses Problem.homebrew
undosx
@CraigRinger möglicherweise die richtige Antwort für Sie haben, bestätigen Sie mitbrew doctor
.Antworten:
Ich konnte Folgendes zu meinem .bash_profile hinzufügen, um den Fehler zu vermeiden:
Dies funktioniert, weil :
Ihr Betriebssystem unterstützt Unix-Domain-Sockets, aber der Unix-Socket von PostgreSQL, der
psql
benötigt wird, ist entweder nicht vorhanden oder befindet sich an einem anderen Speicherort als erwartet.Die explizite Angabe eines Hostnamens als
localhost
erzwingtpsql
die Verwendung von TCP / IP. Das Festlegen einer UmgebungsvariablenPGHOST
ist eine der Möglichkeiten, dies zu erreichen. Es ist im psql-Handbuch dokumentiert .quelle
host: localhost
in database.yml bereits festgelegt . @ Dwhalendatabase.yml
, als dieser Fehler nach dem Downgrade von Postgres auf eine ältere, von Homebrew verwaltete Version auftrat.Versuchen Sie Folgendes in die Konsole einzufügen:
quelle
Ich konnte das Problem lösen, indem ich einfach 127.0.0.1 für die PostgreSQL-Hostadresse ausfüllte, anstatt sie leer zu lassen. (Django Beispiel)
quelle
Öffnen Sie 'postgresql.conf' in Ihrem bevorzugten Editor. Suchen Sie nach der Variablen 'unix_socket_directories', sie wird höchstwahrscheinlich so aussehen:
Ändern Sie die Zeile in diese:
Beachten Sie, wenn Sie möchten, dass die Socket-Dateien in mehr als einem Verzeichnis durch Kommas getrennt werden.
quelle
Eine viel einfachere Lösung (dank http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/ ). Ich hatte ein Upgrade auf Postgres 9.4 durchgeführt. In meinem Fall alles, was ich tun musste (nach einem Tag des Googelns und ohne Erfolg)
Webrick neu starten und fertig!
quelle
Wie von anderen in den Kommentaren erwähnt, besteht eine wirklich einfache Lösung für dieses Problem darin, den Datenbank-Host in der Datenbankkonfiguration zu deklarieren. Fügen Sie diese Antwort hinzu, um es jedem, der dies liest, ein wenig klarer zu machen.
Bearbeiten Sie beispielsweise in einer Ruby on Rails-App /config/database.yml:
Hinweis: Die letzte Zeile, die hinzugefügt wurde, um den Host anzugeben. Vor dem Update auf Yosemite musste ich den Host nie auf diese Weise angeben.
Hoffe das hilft jemandem.
Prost
quelle
.s.PGSQL.5432
Datei befand.Überprüfen Sie den Status der Datenbank:
Wenn die Datenbank nicht ausgeführt wird, starten Sie die Datenbank:
quelle
Können Sie Ihre postgresql.conf-Datei überprüfen?
Auf welchem Port läuft dein Postgres?
Ich denke, es läuft nicht auf Port 5432. Wenn es nicht auf 5432 ändern
ODER bei Terminalgebrauch
quelle
Ich hatte dieses Problem mit Django.
Beheben Sie das Problem, indem Sie Ihren Hostnamen explizit auf "localhost" setzen.
quelle
Ich mache in Wort, indem ich dies tue:
und wählen Sie Ihre bevorzugten Gebietsschemas
(9.5 ist meine Version von postgresql)
und dann das Wort!
quelle
Wenn Sie das oben genannte Problem haben, aber ein Upgrade von Yosemite durchgeführt haben, ist ein anderer Ansatz erforderlich, da die Upgrade-Lösung einige Dateien zerstören kann. Weitere Details finden Sie unter `pg_tblspc`, das nach der Installation der neuesten Version von OS X (Yosemite oder El Capitan) fehlt .
quelle
quelle
Ich bekam immer wieder den oben genannten Fehler und keine der oben genannten Lösungen funktionierte für mich. Schließlich löste die folgende Lösung mein Problem unter Mac OS X.
Installieren Sie Postgres mit Brew
Installieren Sie die Brühdienste
So starten Sie postgres als Hintergrunddienst
Postgres manuell stoppen
Wir können auch Brauservices verwenden, um Postgres neu zu starten
quelle
Überprüfen Sie, ob der Postgres-Server mit dem folgenden Code ausgeführt wird
Wenn der Postgres-Server inaktiv ist, schreiben Sie den folgenden Befehl.
quelle
Ich habe diesen Fehler erhalten, nachdem mein Computer eingefroren und von selbst neu gestartet wurde. Die Lösung für mich wurde nicht auf dieser Seite gefunden, sondern auf einer anderen sehr hoch bewerteten SO-Frage mit dem gleichen Fehler psql: Verbindung zum Server konnte nicht hergestellt werden: Keine solche Datei oder kein solches Verzeichnis (Mac OS X) . Die Antwort: Löschen Sie einfach diese Datei
/usr/local/var/postgres/postmaster.pid
und machen Siebrew services restart postgresql
den Trick. Beachten Sie die Warnung in der verknüpften Antwort zum Beenden von Postgres-Prozessen, bevor Sie dies tun. Andernfalls können Sie Ihre Datenbank dauerhaft beschädigen.quelle
Die Dateiberechtigungen für die Postgres-Datenbank von Mac OS sind eingeschränkt. Diese Berechtigungen werden nach dem Neustart oder Neustart von Postgres zurückgesetzt: z. B. Serveradmin startet Postgres.
Setzen Sie die Berechtigungen oder den Besitz vorübergehend zurück:
Das Zurücksetzen von Berechtigungen ist nicht sicher. Installieren Sie daher eine Version der Datenbank, die Sie für eine Lösung besitzen.
quelle
Es hat eine Weile gedauert, aber ich konnte dies endlich zum Laufen bringen, nachdem ich die angebotenen Vorschläge durchgesehen und zusätzliche Websuchen durchgeführt hatte. Ich habe die Informationen in dem folgenden von Mactasia erstellten YouTube-Video verwendet:
http://www.youtube.com/watch?v=y1c7WFMMkZ4
Als ich das tat, sah ich die Datei mit .lock als Erweiterung. Ich habe jedoch immer noch den Fehler erhalten, als ich versuchte, den Rails-Server zu starten, als ich wieder mit PostgreSQL an meiner Rails-Anwendung arbeitete. Diesmal habe ich einen Fehler erhalten, dem die Erlaubnis verweigert wurde. Zu diesem Zeitpunkt fiel mir ein, dass ich nicht nur listen_addresses in der Liste ändern musste, sondern auch unit_socket_permissions in 0777 ändern musste. Ich habe mich auch als root angemeldet, um die Berechtigungen für den Ordner var / pgsql_socket zu ändern, auf den ich unter zugreifen konnte Benutzerlevel. Postgres funktioniert jetzt gut. Ich lade gerade meine Daten aus meiner SQL-Sicherung neu.
Was ich nicht verstand war, dass, als ich das Wiki aktiviert hatte, PostgreSQL angeblich funktionierte, als ich ein sudo serveradmin fullstatus postgres machte, aber ich bekam immer noch den Fehler. Naja.
quelle
Ich habe gerade einen neuen Cluster erstellt und das hat bei mir funktioniert. Ich habe (PostgreSQL) 9.3.20 verwendet:
quelle
Entfernen Sie zuerst die installierten Postgres:
Dann installieren Sie 'synaptic':
Dann installieren Sie Postgres
quelle
Für RubyOnRails-App hinzufügen
localhost
Wenn Sie eine benutzerdefinierte Postgresql-Version verwendenquelle