6

我最近不得不重新安装 homebrew 和 postgres,现在 postgres 不能与 rails 一起使用。

首先,当尝试运行 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 并查看它是否在您系统上的任何位置。如果是,那么它很有可能在您的数据目录中(如果在 etc 中,则查找 base/1/PG_VERSION 这将在您的数据目录中,从基础上一层)。
  2. 如果它已经存在,请更改您的 postgresql.conf 以适当地设置日志记录设置并删除 -l 选项。
  3. 如果不存在数据目录,请使用 initdb 命令创建一个。
于 2012-09-05T08:44:26.883 回答