【问题标题】:How to restart PostgreSQL server on MacOS?如何在 MacOS 上重启 PostgreSQL 服务器?
【发布时间】:2011-12-20 21:22:37
【问题描述】:

我尝试了以下方法,但失败了

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

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

谢谢

【问题讨论】:

    标签: macos postgresql


    【解决方案1】:

    如果您想重新-启动 Postgres,我假设服务器已经在运行。

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

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

    有了这些信息,您可以使用 -D 开关将数据目录提供给 pg_ctl 命令(详见手册)

    【讨论】:

      【解决方案2】:

      如果您使用brew,您可以通过执行brew info postgresql 找到重新启动(start|stop) 指令。发生的一些问题源于我在操作系统启动时看到plist 未加载这一事实,出于某种原因.我总是忘记要做什么,这很有帮助。

      在我的 Postgres 9.2 brew 配方中:

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

      【讨论】:

      • 这正是我想要的!似乎没有关于重新启动 postgres 的 brew 相关文档。
      【解决方案3】:

      一个班轮(默认安装 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”

      【讨论】:

        猜你喜欢
        • 2011-12-20
        • 2015-02-24
        • 1970-01-01
        • 1970-01-01
        • 2016-10-19
        • 2020-02-02
        • 2021-06-04
        • 2018-04-04
        • 2020-07-06
        相关资源
        最近更新 更多