Postgres sh:/usr/local/var/postgres/server.log:没有这样的文件或目录

Lee*_*lly 6 postgresql homebrew ruby-on-rails rails-postgresql

我最近不得不重新安装自制软件和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)
Run Code Online (Sandbox Code Playgroud)

所以我尝试开始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
Run Code Online (Sandbox Code Playgroud)

由于这个原因,postgres似乎正在运行:

 ps aux | grep postgreslee             1099   0.3  0.0  2425480    188 s000  R+    5:48PM   0:00.01 grep postgres
Run Code Online (Sandbox Code Playgroud)

我完全不知道为什么我不能让它运行.

Chr*_*ers 5

首先,ps | grep实际上是将grep从进程树中拉出来.Postgres没有运行.当放入登录的目录不存在时会发生这种情况.所以可能你把它指向一个不存在的目录.

如果您还没有数据目录,可能会发生这种情况.

建议:

  1. 首先确保您的数据目录存在.搜索pg_hba.conf并查看它是否在您系统的任何位置.如果是,那么它很可能在你的数据目录中(如果它在etc中,那么查找base/1/PG_VERSION这将在你的数据目录中从基数上升一级).
  2. 如果它已存在,则已更改postgresql.conf以适当设置日志记录设置并删除-l选项.
  3. 如果不存在数据目录,请使用initdb命令创建一个.

  • 如果你在OSX上进行全新安装(通过自制程序),你需要首先创建一个数据库`initdb/usr/local/var/postgres -E utf8` (7认同)