it-swarm.com.de

Socket-Datei "/var/pgsql_socket/.s.PGSQL.5432" fehlt in Mountain Lion (OS X Server)

Ich habe gerade meinen MacMini Server von Lion Server auf Mountain Lion mit OS X Server aktualisiert. Ich habe das gleiche Problem mit PostgreSQL wie letztes Jahr, als ich Lion Server zum ersten Mal installierte.

Wenn ich versuche, einen PostgreSQL-Terminalbefehl auszuführen, erhalte ich die folgende berüchtigte Fehlermeldung, 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 erhielt. 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 nach/var/pgsql_socket zu suchen, und der Ordner ist leer. Der Ordner/var/pgsql_socket_alt ist ebenfalls leer.

Ich habe das online überprüft. Fast alle Lösungen, die ich gelesen habe, einschließlich Stack Overflow, schlagen jedoch vor, PostgreSQL zu entfernen und erneut zu installieren. Ich weiß es nicht, aber dies scheint keine plausible Option zu sein, da verschiedene Optionen der Server-App PostgreSQL verwenden. Ich kontaktierte den Apple Enterprise Support (keine Vereinbarung) und mir wurde gesagt, dass mein Problem von den Entwicklern gelöst werden müsste, was 695 Dollar kosten würde.

Ich habe eine Website, die zurzeit nicht verfügbar ist, da ich sie nicht neu erstellen kann. Ich weiß nicht, wo ich mich an diesem Punkt um Hilfe wenden soll. Ich werde weiterhin online suchen, ob ich etwas finden kann. Ich hoffe jedoch, dass mir jemand schnell antworten kann, damit ich meine Datenbank neu aufbauen 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 beheben. Ich kann mit pgadmin und phppgadmin eine Verbindung herstellen. Ich war gerade aus reiner Frustration vor der Rückkehr zu Lion Server. Jetzt muss ich nicht.

http://www.youtube.com/watch?v=y1c7WFMMkZ4

Ich konnte meinem .bash_profile Folgendes hinzufügen, um den Fehler zu vermeiden:

export PGHOST=localhost

Das funktioniert weil :

Wenn Sie den Hostnamen nicht angeben, verbindet sich psql über einen Unix-Domain-Socket mit einem Server auf dem lokalen Host oder über TCP/IP mit Localhost auf Computern ohne Unix-Domain-Sockets.

Ihr Betriebssystem unterstützt Unix-Domänensockets, aber der Unix-Socket von PostgreSQL, den psql benötigt, ist entweder nicht vorhanden oder befindet sich an einem anderen Ort als erwartet.

Die explizite Angabe eines Hostnamens als localhost zwingt psql zur Verwendung von TCP/IP. Das Festlegen einer Umgebungsvariable PGHOST ist eine der Möglichkeiten, dies zu erreichen. Es ist in psqls Handbuch dokumentiert.

275
mmasters

Versuchen Sie, dies in der Konsole einzufügen: 

$ mkdir /var/pgsql_socket/ 

$ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
29
Bryan Algutria

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)

DATABASES = {
    'default': {
        'ENGINE': 'Django.db.backends.postgresql_psycopg2',
        'NAME': 'database_name',
        'USER': 'database_user',
        'PASSWORD': 'pass',
        'Host': '127.0.0.1',
        'PORT': '',
        }
}
22
Nick Woodhams

Öffnen Sie "postgresql.conf" in Ihrem bevorzugten Editor. Suchen Sie nach der Variablen 'unix_socket_directories', die höchstwahrscheinlich so aussieht: 

unix_socket_directories = '/private/tmp/'

Ändern Sie die Zeile so:

unix_socket_directories = '/var/pgsql_socket/'

Beachten Sie, wenn Sie möchten, dass die Socketdateien in mehreren Verzeichniskommas getrennt werden.

10
Craig Thomas

Wie bereits in den Kommentaren erwähnt, ist es eine sehr einfache Lösung für dieses Problem, die Datenbank als Host in der Datenbankkonfiguration zu deklarieren. Fügen Sie diese Antwort hinzu, um es für alle Leser etwas klarer zu machen.

Bearbeiten Sie beispielsweise in einer Ruby on Rails-App /config/database.yml:

development:
  adapter: postgresql
  encoding: unicode
  database: database_name
  pool: 5
  Host: localhost

Hinweis: Die letzte Zeile wurde hinzugefügt, um den Host anzugeben. Vor dem Update auf Yosemite musste ich den Host auf diese Weise nicht angeben.

Hoffe das hilft jemandem.

Prost

7
David Battersby

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. In meinem Fall alles, was ich tun musste (nach einem Tag Googeln und nicht erfolgreich)

gem uninstall pg
gem uninstall activerecord-postgresql-adapter
bundle install

Webrick neu starten und fertig!

5
Jan Gerritsen

Überprüfen Sie den Status der Datenbank:

service postgresql status

Wenn die Datenbank nicht läuft, starten Sie die Datenbank:

Sudo service postgresql start
5
Sivakumar R.J

Können Sie Ihre postgresql.conf -Datei überprüfen?

An welchem ​​Port läuft dein Postgres?

Ich denke, dass es nicht auf Port 5432 läuft 

ODER bei Verwendung des Terminals

psql -U  postgres -p YOUR_PORT_NUMBER database_name
4
Hunter

Ich hatte dieses Problem mit Django. 

Beheben Sie dies, indem Sie Ihren Hostnamen explizit auf "localhost" setzen.

2

ich mache in Word damit:

dpkg-reconfigure locales

und wählen Sie Ihre bevorzugten Schauplätze

pg_createcluster 9.5 main --start

(9.5 ist meine Version von Postgresql)

/etc/init.d/postgresql start

und dann das Wort!

Sudo su - postgres
psql
2
mymusise
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 immer wieder den oben genannten Fehler erhalten 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

Bringen Sie Postgres an

brew install postgres

Brühservices installieren 

brew tap homebrew/services

Postgres als Hintergrunddienst starten

brew services start postgresql

Um postgres manuell zu stoppen

brew services stop postgresql

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

brew services restart postgresql
1
Sudharshan

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` nach der Installation der neuesten Version von OS X (Yosemite oder El Capitan) .

1
Obromios

Überprüfen Sie, ob der Postgres-Server mit folgendem Code ausgeführt wird

Sudo service postgresql status

wenn der Postgres-Server inaktiv ist, schreiben Sie den folgenden Befehl.

Sudo service postgresql start
1
wailinux
apt-get install postgres-xc-client
apt-get install postgres-xc
1
angela

Entfernen Sie zuerst die installierten Postgres:

Sudo apt-get purge postgr*
Sudo apt-get autoremove

Dann installiere 'synaptic':

Sudo apt-get install synaptic
Sudo apt-get update

Dann installieren Sie Postgres

Sudo apt-get install postgresql postgresql-contrib
0
Gurudath BN

Ich habe gerade ein neues Cluster erstellt und das hat für mich funktioniert, ich verwendete (PostgreSQL) 9.3.20:

Sudo pg_createcluster 9.3 main --start
0

Dateiberechtigungen sind für die Postgres-Datenbank, die dem Mac OS gehört, einschränkend. Diese Berechtigungen werden nach einem Neustart oder einem Neustart von Postgres zurückgesetzt: z. Serveradmin Start Postgres.

Setzen Sie also die Berechtigungen oder den Besitz vorübergehend zurück:

Sudo chmod o+rwx /var/pgsql_socket/.s.PGSQL.5432
Sudo chown "webUser"  /var/pgsql_socket/.s.PGSQL.5432

Das Zurücksetzen von Berechtigungen ist nicht sicher. Installieren Sie daher eine Version der Datenbank, die Sie für eine Lösung besitzen.

0
clewis

Ich habe diesen Fehler erhalten, nachdem mein Computer eingefroren und 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: Konnte keine Verbindung zum Server herstellen: Keine solche Datei oder Verzeichnis (Mac OS X) . Die Antwort: Lösche einfach diese Datei /usr/local/var/postgres/postmaster.pid, dann hat brew services restart postgresql den Trick gemacht. Beachten Sie die Warnung in der verknüpften Antwort zum Beenden von Postgres-Prozessen, bevor Sie dies tun, da Sie sonst Ihre Datenbank dauerhaft beschädigen könnten.

0
wetjosh

Es dauerte eine Weile, aber ich konnte dies endlich zum Laufen bringen, nachdem ich die angebotenen Vorschläge durchgearbeitet hatte und zusätzliche Web-Suchen durchgeführt wurden. Ich habe die Informationen in folgendem YouTube-Video von Mactasia verwendet:

http://www.youtube.com/watch?v=y1c7WFMMkZ4

Dabei sah ich die Datei mit der Erweiterung .lock. Ich habe jedoch immer noch die Fehlermeldung erhalten, als ich versuchte, den Rails-Server zu starten, als ich die Arbeit an meiner Rails-Anwendung mit PostgreSQL fortsetzte. Dieses Mal wurde mir eine Erlaubnis verweigert. Zu diesem Zeitpunkt erinnerte ich mich daran, dass ich nicht nur listen_addresses in der plist ändern musste, ich musste auch unit_socket_permissions auf 0777 ändern. Ich habe mich auch als root angemeldet, um die Berechtigungen für den Ordner var/pgsql_socket zu ändern, auf den ich dort zugreifen kann Benutzerlevel. Postgres funktioniert jetzt gut. Ich bin gerade dabei, meine Daten von meiner SQL-Sicherung neu zu laden.

Was ich nicht verstand, war, dass, als ich Wiki eingeschaltet hatte, PostgreSQL angeblich funktionierte, als ich einen Sudo-Serveradmin-Vollstatus-Postgres ausführte, aber ich den Fehler immer noch bekam. Naja.