在 Mac 上启动 postgres 服务器

Posted

技术标签:

【中文标题】在 Mac 上启动 postgres 服务器【英文标题】:starting postgres server on Mac 【发布时间】:2015-03-30 16:29:27 【问题描述】:

我第三次或第四次遇到此问题,在重新启动我的 Mac(优胜美地和与以前的 OSX 版本相同)后,postgres 服务器无法启动。我按照this 链接安装了我的postgres。知道为什么每次重新启动后都会出现这种情况吗?

输入psql 它给出了

psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

【问题讨论】:

【参考方案1】:

我刚刚在我的 Mac 上修复了这个问题。我使用自制软件安装 postgres。这些是我重新启动和运行所采取的步骤。

首先检查postgresql服务的状态:

pg_ctl -D /usr/local/var/postgres status

如果您看到此pg_ctl: no server running,请卸载启动代理:

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

然后移动您现有的 postgres 数据(移动而不是删除 - 便宜的保险):

mv /usr/local/var/postgres /usr/local/var/postgres-deletemewhenitsallgood

然后初始化你的 postgres 数据库:

initdb /usr/local/var/postgres -E utf8

然后加载您的启动代理:

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

或者启动它:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

现在再次检查状态:

pg_ctl -D /usr/local/var/postgres status

如果你看到这样的东西,你就可以走了。

pg_ctl: server is running (PID: 61295)
/usr/local/Cellar/postgresql/bin/postgres "-D" "/usr/local/var/postgres"

然后你就可以进入你的 postgres 数据库了:

psql -d postgres

此外,您还需要添加 postgress 角色。 To Resolve missing postgres Role error

【讨论】:

这一系列命令假设询问者可以丢失所有数据库数据并从头开始重新启动,这在问题中从未提及。 安装好几次重启后OP说因为报错无法连接。如果有需要保存的数据,它仍然在文件系统上并且可以恢复。 @m79lkm 太棒了!!在这个问题上停留了 2 天后,它对我来说非常有效。保持良好的工作冠军! 虽然这个答案对我有帮助,但如果有重复的 psql 安装,一个用于 brew,另一个用于 osx,了解它会很有趣。我迷失在这方面。 在您看到这个问题之前发生了什么?这对我来说是经常发生的事情,我有 SO 线程书签。为什么我必须在整个 Postgres 数据存储中移动才能重新启动我的服务器?关于造成这种情况或如何预防的任何想法?我想对我来说,我更新了 Mac(这让我的电脑成为了苹果的 HOSTAGE)。【参考方案2】:

在 mac 上启动 postgres 服务器:

用 brew 安装 postgres

brew install postgres

确保您拥有 /usr/local/postgres

的权限
sudo chown -R `whoami` /usr/local

然后初始化数据库:

initdb /usr/local/var/postgres

launchd在登录时启动postgresql:

ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

加载 postgresql:

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

检查您的版本:

psql --version

并访问 postgres

psql -d postgres

【讨论】:

ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents 让它为我工作。谢谢

以上是关于在 Mac 上启动 postgres 服务器的主要内容,如果未能解决你的问题,请参考以下文章

通过终端在 Mac 上停止 postgreSQL 服务

postgresql实用操作记录

在 Mac 上切换到 postgres 用户

uWSGI、Flask、sqlalchemy 和 postgres:SSL 错误:解密失败或坏记录 mac

在Mac上关于tomcat服务器的安装配置启动部署web详细流程

在Mac OSX上启动/停止MySQL服务器