【问题标题】:Postgres sh: /usr/local/var/postgres/server.log: No such file or directoryPostgres sh:/usr/local/var/postgres/server.log:没有这样的文件或目录
【发布时间】:2012-06-13 21:49:05
【问题描述】:

我最近不得不重新安装 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

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

【问题讨论】:

  • 您可能已将新的 postgres 安装到不同的目录中。首先尝试省略 -l 标志 + 日志文件名,看看它是否启动。顺便说一句:您也可以在 postgres.conf 中指定日志文件。目录“/usr/local/var/postgres”包含什么?它存在吗?谁是所有者?
  • 从 13 升级到 14 后尝试运行 brew postgresql-upgrade-database 并遇到同样的问题。这个答案有帮助

标签: ruby-on-rails postgresql homebrew rails-postgresql


【解决方案1】:

首先,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
猜你喜欢
  • 2023-04-09
  • 2023-04-04
  • 2019-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-03
  • 2019-07-25
  • 1970-01-01
相关资源
最近更新 更多