2012-08-16 8 views
6

einzurichten Ich versuche Postgres Setup lokal für eine Rails-App auf meinem Mac (10.7 Lion) zu bekommen.Ich versuche, Postgres auf OSX

Ich installierte postgresapp und startete es, ich habe jetzt einen Elefanten in meiner Statusleiste, die mir sagt, dass Postgres läuft.

ich kann, um es von:

psql -h localhost 

Aber wenn ich einfach psql laufen bekomme ich diesen Fehler:

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

ich dies gesagt:

PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH" 

In ~/.bashrc und eröffnete ein neues Terminal. Aber keine Würfel.

Wenn ich which psql laufen bekomme ich /usr/bin/psql

Nicht wirklich sicher, was zu tun ist .. Ich bin immer noch ziemlich neu in Unix-Systemen. Sollte ich Symlink /usr/bin/psql zu /Applications/Postgres.app/Contents/MacOS/bin/psql?

+1

Wo tut die anderen 'psql' kommen von, die eine in'/usr/bin/'? Mit Mac OS X vorinstalliert? Aus einem anderen PostgreSQL-Paket? –

+0

@CraigRinger Ich würde annehmen, dass es vorinstalliert war. –

+0

Gibt es in '/ Applications/Postgres.app/Contents/MacOS/bin' eine ausführbare Datei? Es sollte da sein. Was passiert, wenn Sie versuchen, das zu starten (den Pfad angeben)? – dezso

Antwort

4

Dieser Fehler ist ziemlich spezifisch und sagt Ihnen, was falsch ist, aber wenn Sie Unix neu sind, dann ist es weniger offensichtlich.

gab ich eine ähnliche Antwort darauf hier:

Can not connect to local PostgreSQL

Das Problem

Sie haben keinen Zugriff auf die ("socket") /var/pgsql_socket/.s.PGSQL.5432

Datei Zu beheben:

Überprüfen Sie, ob Sie mindestens Zugriff auf das Verzeichnis haben. Verwenden Sie in der Befehlszeile:

ls -l /var/pgsql_socket/.s.PGSQL.5432 

Dies führt zu "Berechtigung verweigert", wenn nicht. Es ist wahrscheinlich, dass Sie bereits Zugriff darauf haben und es ist nur die Socket-Datei, für die Sie keine Berechtigung haben.

Die Socket-Datei selbst wird beim Start von postgresql erstellt.

Verfolgen Sie die Hauptkonfigurationsdatei für Postgres (postgresql.conf). Das an sich könnte schwierig sein, ich bin ein Linux-Benutzer nicht OSX. Möglicherweise müssen Sie etwas Zeit auf Google verbringen. Dieser Link ist ziemlich alt, aber es kann Sie auf die richtige Spur bringen, wenn Sie Probleme haben. http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html

Sobald Sie es gefunden haben, finden Sie die Zeilen in postgresql.conf sollten sie so etwas sagen wie:

unix_socket_directory = '/var/pgsql_socket' # dont worry if yours is different 
#unix_socket_group = ''      # default is fine here 
unix_socket_permissions = 0777     # check this one 
+4

Die Mac OSX-Konfigurationsdatei befindet sich unter/Users/$ USER/Library/Application Support/Postgres/var – SANDeveloper

11

I Pro mit Mountain Lion ein ähnliches Problem auf meinem neuen MacBook hatte.Ich habe die PostgresApp und wenn ich Schienen feuert erhielt ich folgende Fehlermeldung:

`initialize': could not connect to server: No such file or directory (PG::Error) 
Is the server running locally and accepting 
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"? 

Um dies zu beheben, musste ich explizit den Host und Port in meiner database.yml Datei definieren wie folgt:

development: 
    adapter: postgresql 
    encoding: unicode 
    database: my_app_development 
    pool: 5 
    username: tony 
    password: stark  
    host: localhost 
    port: 5432