6

最近、homebrewとpostgresを再インストールする必要がありましたが、postgresがレールで機能していません。

最初にrailsを実行しようとすると、次のようになります。

/Users/lee/.rvm/gems/ruby-1.9.3-p125@achievex/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)

だから私はpostgresを始めてみて、これを手に入れました:

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

これが原因でpostgresが実行されているようです。

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

なぜそれを実行できないのか、私はここで完全に途方に暮れています。

4

1 に答える 1

6

まず、ps | grepは、実際にはgrepをプロセスツリーから引き出しています。Postgresが実行されていません。このようなことは、ログインするディレクトリが存在しない場合に発生します。したがって、おそらく存在しないディレクトリを指している可能性があります。

これは、データディレクトリがまだない場合に発生する可能性があります。

推奨事項:

  1. データディレクトリが存在することを確認することから始めます。pg_hba.confを検索して、システムのどこかにあるかどうかを確認します。その場合は、データディレクトリにある可能性が高いです(などにある場合は、base / 1 / PG_VERSIONを探します。これは、ベースから1レベル上のデータディレクトリにあります)。
  2. すでに存在する場合は、postgresql.confを変更してロギング設定を適切に設定し、-lオプションを削除します。
  3. データディレクトリが存在しない場合は、initdbコマンドを使用して作成します。
于 2012-09-05T08:44:26.883 に答える