2011-11-03 153 views
14

我尝试了以下它我使用Macbook Pro和不记得在那里我的数据存储,因此不能设置PGDATA要么目录失败如何在MacOS上重新启动PostgreSQL服务器?

bash-3.2$ pg_ctl restart 
pg_ctl: no database directory specified and environment variable PGDATA unset 

,是有办法重新启动Postgres的所有不失数据?

当你想重新 -start Postgres的我假定服务器已经运行谢谢

回答

20

使用超级用户帐号就可以通过SQL查询数据目录的位置:

select name, setting 
from pg_settings 
where name = 'data_directory' 

有了你可以提供数据目录使用-D开关pg_ctl命令的信息(详见说明书)

+0

有帮助,非常感谢:) – daydreamer

17

如果您使用的是brew,则可以通过执行brew info postgresql找到重新启动(开始|停止)说明。由于某些原因,我发现操作系统启动时没有加载plist,导致出现了一些问题。我总是忘记该怎么做,这有所帮助。

在我的Postgres 9.2酿造配方它有:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 
+0

这正是我一直在寻找的!似乎重新启动postgres几乎没有与brew相关的文档。 – jgillman

4

一个衬垫(默认PostgreSQL的9.6安装)

sudo su postgres -c "/Library/PostgreSQL/9.6/bin/pg_ctl restart -D /Library/PostgreSQL/9.6/data" 

完整版

获取PGDATA文件夹(给我/Library/PostgreSQL/9.6/data)(谢谢@a_horse_with_no_name)

select name, setting from pg_settings where name = 'data_directory'; 

对于我来说,返回 '/Library/PostgreSQL/9.6/data'

然后

sudo su - postgres 
./bin/pg_ctl restart -D /Library/PostgreSQL/9.6/data 

注:Postgres的用户家目录应该是 “/Library/PostgreSQL/9.6”

+0

很适合我 – MWiesner