2012-06-13 16 views
6

Ich musste vor kurzem Homebrew und Postgres neu installieren und jetzt Postgres funktioniert nicht mit Schienen.Postgres sh: /usr/local/var/postgres/server.log: Keine solche Datei oder Verzeichnis

Zuerst, wenn sie versuchen Schienen s zu laufen, bekomme ich diese:

/Users/lee/.rvm/gems/[email protected]/gems/activerecord-3.2.6/lib/active_record/connection_adapters/postgresql_adapter.rb:1206:in `initialize': could not connect to server: Connection refused (PG::Error) 

Also versuche ich Postgres Start und ich bekomme diese:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start 
server starting 
sh: /usr/local/var/postgres/server.log: No such file or directory 

Es scheint, dass Postgres, weil dieser ausgeführt wird:

ps aux | grep postgreslee    1099 0.3 0.0 2425480 188 s000 R+ 5:48PM 0:00.01 grep postgres 

Ich bin völlig ratlos, warum ich es nicht zum Laufen bringen kann.

+2

Wahrscheinlich haben Sie die neuen Postgres in einem anderen Verzeichnis installiert. Versuchen Sie zunächst, die Option -l flag + logfilename auszulassen, um zu sehen, ob sie startet. BTW: Sie können die Logdatei auch in postgres.conf angeben. Was enthält das Verzeichnis "/ usr/local/var/postgres"? existiert es ? Wem gehört das ? – wildplasser

Antwort

5

Zuerst ps | Grep zieht tatsächlich Ihren Grep aus dem Prozessbaum. Postgres läuft nicht. Dies geschieht, wenn das Verzeichnis, in dem sich das Protokoll befindet, nicht existiert. Wahrscheinlich weisen Sie also auf ein nicht existierendes Verzeichnis hin.

Dies könnte passieren, wenn Sie noch kein Datenverzeichnis haben.

Empfehlungen:

  1. Sie zunächst sicher, existiert Ihre Daten machen Verzeichnis. Suchen Sie nach pg_hba.conf und sehen Sie, ob es irgendwo auf Ihrem System ist. Wenn dies der Fall ist, besteht eine gute Chance, dass es sich in Ihrem Datenverzeichnis befindet (wenn es in etc ist, dann suchen Sie nach base/1/PG_VERSION Dies wird in Ihrem Datenverzeichnis eine Ebene höher als die Basis sein).
  2. Wenn es bereits vorhanden ist, ändern Sie Ihre postgresql.conf, um die Protokollierungseinstellungen entsprechend festzulegen und die Option -l zu löschen.
  3. Wenn kein Datenverzeichnis vorhanden ist, verwenden Sie den Befehl initdb, um eins zu erstellen.
+6

Wenn Sie eine Neuinstallation unter OSX durchführen (über Homebrew), müssen Sie zuerst eine Datenbank erstellen: 'initdb/usr/local/var/postgres -E utf8' – oschrenk