PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Es kann keine Verbindung zu lokalem PostgreSQL hergestellt werden

Das sieht wirklich nach einem Dateiberechtigungsfehler aus. Unix-Domain-Sockets sind Dateien und haben wie alle anderen Benutzerberechtigungen. Es sieht so aus, als hätte der OSX-Benutzer, der versucht, auf die Datenbank zuzugreifen, keine Dateiberechtigungen für den Zugriff auf die Socket-Datei. Um dies zu bestätigen, habe ich einige Tests auf Ubuntu und psql durchgeführt, um zu versuchen, denselben Fehler zu generieren (unten enthalten).

Sie müssen die Berechtigungen für die Socket-Datei und ihre Verzeichnisse /var überprüfen und /var/pgsql_socket . Ihre Rails-App (OSX-Benutzer) muss über Ausführungsberechtigungen (x) für diese Verzeichnisse verfügen (vorzugsweise allen Berechtigungen erteilen), und der Socket sollte über vollständige Berechtigungen (wrx) verfügen. Sie können ls -lAd <file> verwenden um diese zu überprüfen, und wenn einer davon ein symbolischer Link ist, müssen Sie die Datei oder das Verzeichnis überprüfen, auf das der Link verweist.

Sie können die Berechtigungen für das Verzeichnis selbst ändern, aber der Socket wird von postgres in postgresql.conf konfiguriert . Diese befindet sich im selben Verzeichnis wie pg_hba.conf (Sie müssen herausfinden, welche). Nachdem Sie die Berechtigungen festgelegt haben, müssen Sie postgresql neu starten.

# postgresql.conf should contain...
unix_socket_directory = '/var/run/postgresql'       # dont worry if yours is different
#unix_socket_group = ''                             # default is fine here
#unix_socket_permissions = 0777                     # check this one and uncomment if necessary.

BEARBEITEN:

Ich habe eine schnelle Suche auf Google durchgeführt, die Sie vielleicht prüfen möchten, um zu sehen, ob es relevant ist. Dies kann durchaus zu einem Versuch führen, find Ihre Konfigurationsdatei schlägt fehl.

http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html

Fehlermeldungen:

Benutzer nicht in pg_hba.conf gefunden

psql: FATAL:  no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off

Benutzer fehlgeschlagene Passwortauthentifizierung:

psql: FATAL:  password authentication failed for user "couling"

Fehlende Unix-Socket-Datei:

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

Unix-Socket existiert, aber der Server hört nicht darauf.

psql: could not connect to server: Connection refused
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Ungültige Dateiberechtigungen für Unix-Socket-Datei :

psql: could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?