每10秒在控制台中出现postgresql错误

时间:2013-03-01 21:06:06

标签: postgresql

我在尝试学习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

我该如何阻止它?

2 个答案:

答案 0 :(得分:2)

看起来您安装了EnterpriseDB的PostgreSQL软件包,但由于服务器无法启动,因此您不能使用它。我认为你正在使用Postgres.app或Homebrew Postgres等其他PostgreSQL服务器进行开发工作?

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

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

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

(或postgres_取决于launchd期望的内容。)

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

答案 1 :(得分:2)

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