尝试启动通过 Homebrew 安装的 PostgreSQL 时出错:“操作不允许”

尝试启动通过 Homebrew 安装的 PostgreSQL 时出错:“操作不允许”

我最近通过以下方式在 Mac 上安装了 PostgreSQL自制。(我可能已经安装了它;但它没有运行。)

brew install postgres
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

现在我尝试用以下方式启动它launchctl

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

...但我收到了一个错误:

/usr/local/Cellar/postgresql/9.4.0/homebrew.mxcl.postgresql.plist:操作不允许

这个错误是什么意思?我做错了什么?我该如何解决这个问题?

答案1

可能是你正在launchctl使用多路复用或者屏幕

Tmux 和 Screen 是终端多路复用器,可产生多个“屏幕”,您可以在单个终端中轻松切换它们。

由于某些我不知道的原因,launchctl在 Tmux 中运行它从不起作用,并发出错误Operation not permitted。在普通 shell 中运行它,它可能会正常工作。

答案2

以下是您可能需要采取的步骤:

删除以前安装的 PostgreSQL:

brew remove postgres
rm ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

安装新版本:

brew install postgres
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

您以前安装的数据需要升级才能与 PostgreSQL 9.4+ 兼容:http://www.postgresql.org/docs/9.4/static/upgrading.html

似乎您需要安装两个 PostgreSQL 才能升级数据库,而我并不关心这一点,因此我只是使用新版本重新创建了数据库:

mv /usr/local/var/postgres /usr/local/var/old-postgres
initdb -D /usr/local/var/postgres

现在启动 PostgreSQL(tmux如果您正在使用它的话):

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

检查日志是否存在任何问题:

tail /usr/local/var/postgres/server.log

相关内容