如何在MacOS上重启PostgreSQL服务器?

时间:2011-11-03 05:09:13

标签: macos postgresql

我尝试了以下操作,但失败了

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

我正在使用Macbook Pro并且不记得我的数据存储的目录,因此也无法设置PGDATA,有没有办法重新启动Postgres而不会丢失数据?

谢谢

3 个答案:

答案 0 :(得分:20)

如果你想重新 - 启动Postgres,我认为服务器已在运行。

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

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

使用该信息,您可以使用-D开关将数据目录提供给pg_ctl命令(有关详细信息,请参阅手册)

答案 1 :(得分: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

答案 2 :(得分:9)

单行(默认postgresSql 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"