3

我在尝试学习 Rails 时安装了 postgresql-9.1。当时我没有遇到任何问题,但我只是打开了我的 Console.app 来解决其他问题,我看到以下错误每 10 秒重复一次:

3/1/13 10:28:15 AM  com.edb.launchd.postgresql-9.1[89003]   2013-03-01 15:28:15 GMT FATAL:  data directory "/Library/PostgreSQL/9.1/data" has wrong ownership
3/1/13 10:28:15 AM  com.edb.launchd.postgresql-9.1[89003]   2013-03-01 15:28:15 GMT HINT:  The server must be started by the user that owns the data directory.
3/1/13 10:28:15 AM  com.apple.launchd[1]    (com.edb.launchd.postgresql-9.1[89003]) Exited with exit code: 1
3/1/13 10:28:15 AM  com.apple.launchd[1]    (com.edb.launchd.postgresql-9.1) Throttling respawn: Will start in 10 seconds

我怎样才能阻止它?

4

2 回答 2

2

看起来你已经安装了 EnterpriseDB 的 PostgreSQL 包,但你不能使用它,因为服务器无法启动。我想您正在使用其他一些 PostgreSQL 服务器,例如 Postgres.app 或 Homebrew Postgres 来进行您的开发工作?

如果是这样,请考虑卸载未使用的 EnterpriseDB PostgreSQL 包。或者,您可以删除其 launchd 配置文件,以便 launchd 不会尝试启动它,但这可能会在以后造成更多混乱。

如果要使用它,则需要修复权限。“启动服务器的用户”不是您的用户名,而是一个名为postgresor的用户postgres_(在某些 Mac 系统上)。您可以通过阅读 EDB PostgreSQL 的 launchd 文件来找出哪个。然后你需要:

sudo chown -R postgres /Library/PostgreSQL/9.1/data

(或postgres_取决于 launchd 的预期)。

如果您正在运行另一个 PostgreSQL 服务器,这可能会允许 EDB 服务器尝试启动,但它会与您的另一个 PostgreSQL 使用的端口号冲突,因此它仍然会失败。或者它可能会在您的计算机下次启动时成功启动,您将无法再访问您的其他 PostgreSQL 实例。因此,如果您已经在使用另一个版本的 PostgreSQL,您可能应该卸载这个版本。

于 2013-03-02T02:01:51.003 回答
2

当我将 PostgreSQL 更新homebrew到 9.3 版本时,我遇到了同样的问题。我开始在互联网上搜索解决问题的方法,但不幸的是没有成功。所以我决定自己研究这个问题。我发现postgres尝试从 2 个地方开始:/System/Library/LaunchDaemons/~/Library/LaunchAgents. 只需删除旧的或禁用它(放置在 中/System/Library/LaunchDaemons/)就可以了。

于 2014-01-14T22:07:01.043 回答