无法在 Mac OS X 上启动 Homebrew PostgreSQL 安装 - "Permission Denied"



我通过Homebrew安装了一个Postgresql,崩溃后我无法再启动服务器了。。

如果我做

 $ pg_ctl start 

我得到

pg_ctl: no database directory specified and environment variable PGDATA unset

如果我做

$ pg_ctl -D /Library/PostgreSQL/data start

我得到

pg_ctl: could not open PID file "/Library/PostgreSQL/data/postmaster.pid": Permission denied

一切都很好,然后。。突然,这个。

上面的数据文件夹为postgres用户设置了"Everything"权限,为每个人设置了"None"权限。。

路径看起来不错(在我的~/.bash_profile中)

export PATH=/usr/local/bin:$PATH

当您第一次启动Pg时,您是让自制程序为您启动它,还是用pg_ctl手动启动它?我这么问是因为我猜你可能需要使用自制脚本和/或使用launchd而不是直接通过pg_ctl来启动和停止Pg。我不太使用自制软件(或Mac OS X),但快速搜索表明,Pg的自制软件安装通常通过launchd~/Library/LaunchAgents/org.postgresql.postgres.plist启动和停止。

如果你想手动管理它:

自制程序通常以什么用户的身份运行PostgreSQL?如果您通过pg_ctl启动Pg,则需要以正确的用户身份运行它。根据我在这里看到的关于自制软件的其他讨论的模糊记忆,它可能是一个名为postgrespostgres_的用户。双重检查使用:

ls -ld /Library/PostgreSQL/data

并查看拥有的用户是什么,然后运行:

sudo -u postgres_ pg_ctl -D /Library/PostgreSQL/data start

将"postgres_"替换为datadir的所有者。

我怀疑您出现权限错误的原因可能是您没有递归地应用更改。请不要;以正确的用户身份运行Pg。

最新更新