2013-02-19 3 views
19

Ich hatte eigentlich dieses Problem für eine Weile, aber ich habe endlich beschlossen, es zu übernehmen. Postgres wurde ursprünglich mit Brew installiert.Wie starte ich den Postgres-Server?

Nach meinem Upgrade auf OS X 10.8.2 eine

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

Fehler zu empfangen, wenn ich den Befehl

$ psql 

getippt.

Ich sehe die folgenden Prozesse:

$ ps auxw | grep post 
Tulsa   59222 0.0 0.2 2483256 14808 ?? Ss Thu03PM 0:02.61 /System/Library/PrivateFrameworks/DiskImages.framework/Resources/diskimages-helper -uuid 470DA5CC-1602-4D69-855F-F365A6512F90 -post-exec 4 
Tulsa   57940 0.0 0.2 2498852 13648 ?? Ss Wed10PM 0:00.61 /System/Library/PrivateFrameworks/DiskImages.framework/Resources/diskimages-helper -uuid FAFAAAB4-0F67-42C8-864E-EF8C31A42EE3 -post-exec 4 
root   24447 0.0 0.1 2476468 10080 ?? Ss 8Feb13 0:03.40 /System/Library/PrivateFrameworks/DiskImages.framework/Resources/diskimages-helper -uuid CC768720-12C2-436C-9020-548C275A6B0C -post-exec 4 
Tulsa   74224 0.0 0.0 2432768 596 s002 R+ 7:24PM 0:00.00 grep post 


$ which psql 
/usr/local/bin/psql 

$ pg_ctl start 
pg_ctl: no database directory specified and environment variable PGDATA unset 
Try "pg_ctl --help" for more information. 
+28

Ich habe keine Ahnung, worum es geht, aber der Titel ist unbezahlbar ... +1 –

+4

@retailcoder: Es scheint wie * sollte * sein "Upgrade OS/X ruiniert mein Leben." –

+2

Ich bin mir ziemlich sicher, dass '-post-exec' nichts mit PostgreSQL zu tun hat. Der Server wird also nicht lokal ausgeführt. Unter Linux können seine Prozesse mit 'ps aux | gefunden werden Grep Postgres'. Ich wäre ein wenig überrascht, wenn das auf OS/X anders wäre. Mach was pg_ctl dir sagt. –

Antwort

24

Sie haben den Postgres-Server nicht gestartet. Einige der dmg-Pakete für Postgres haben festgelegt, dass es beim Start als Dienst ausgeführt wird. Aber nicht wie du die Installation gemacht hast.

Sie müssen ein Datenverzeichnis initiieren, Postgres starten und dann von dort gehen.

initdb /some/directory # just do this ONCE 
pg_ctl -D /some/directory start # many other options, e.g. logging, available here 
psql postgres 

Sie können eine Umgebungsvariable für das Datenverzeichnis eingestellt und Sie werden die -D Flagge später nicht benötigen. Sie können das später nachsehen.

+1

Ja, aber welches Verzeichnis ??? – Michael

+0

@Michael Jedes Verzeichnis, das Sie möchten, abhängig von Ihrer Festplattenkonfiguration. –

+47

Ich hasse diese Art von Antworten. Wenn ich wüsste, welches Verzeichnis eine gute Auswahl ist, dann würde ich wahrscheinlich nicht kopieren Code von S.O. Wie schwer ist es, "irgendein Verzeichnis" hinzuzufügen, ** EG: ** '/ usr/local/var/postgres'". – Sinetheta