我尝试了以下操作,但失败了
bash-3.2$ pg_ctl restart
pg_ctl: no database directory specified and environment variable PGDATA unset
我正在使用Macbook Pro
并且不记得我的数据存储的目录,因此也无法设置PGDATA,有没有办法重新启动Postgres而不会丢失数据?
谢谢
答案 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"