通过终端在 Mac 上停止 postgreSQL 服务
Posted
技术标签:
【中文标题】通过终端在 Mac 上停止 postgreSQL 服务【英文标题】:Stop postgreSQL service on Mac via terminal 【发布时间】:2016-03-14 09:50:08 【问题描述】:目前正在运行 postgreSQL 9.4.5_2
我试过了
pg_ctl stop -W -t 1 -s -D /usr/local/var/postgres -m f
通常没有消息就是好消息,但之后我会运行
pg_ctl status -D /usr/local/var/postgres
并获取pg_ctl: server is running (PID: 536)
我也试过了
pg_ctl restart -w -D /usr/local/var/postgres -c -m i
响应消息是:
waiting for server to shut down.......................... failed
pg_ctl: server does not shut down
我还检查了我的 /Library/LaunchDaemons/ 以了解为什么该服务在登录时启动但到目前为止没有运气。有人对我接下来应该检查的地方有任何想法吗?活动监视器中的强制退出也对我没有任何帮助。
【问题讨论】:
【参考方案1】:遇到了同样的问题,我在本地安装了 postgres,想换成 docker 容器。
我通过 1) 卸载 postgres 2) 杀死 postgres 端口上的剩余进程,彻底解决了这个问题。如果您不卸载该进程重新启动并再次获取端口 - 查看您的 Brewfile 表单 brew bundle dump
以检查 restart_service: true
标志。
我推断,由于我使用的是容器,所以无论如何我都不应该需要本地容器,但是 !请注意,这将从您的系统中删除 postgres。
brew uninstall postgres
...
lsof -i :5432 # this to find the PID for the process
kill - 9 <the PID you found at previous command>
注意:如果您仍想使用psql
,您可以brew install libpq
,并将 psql 添加到您的 PATH(命令输出显示您要添加到您的 .zshrc
或类似内容的内容)
【讨论】:
【参考方案2】:您可以使用此命令停止服务器
pg_ctl -D /usr/local/var/postgres stop -s -m fast
【讨论】:
【参考方案3】:我尝试了各种选择;最后,下面的命令奏效了。
sudo -u postgres ./pg_ctl -D /your/data/directory/path stop
例子
sudo -u postgres ./pg_ctl -D /Library/PostgreSQL/11/data stop
【讨论】:
这很好,但请注意 - 您的命令假定您与pg_ctl
二进制文件位于同一目录中。通常,无论您通过什么安装过程将 Postgres 安装到您的机器上,都会将该二进制文件放在您路径中的目录中。所以可能更普遍的是sudo -u postgres pg_ctl -D /Library/PostgreSQL/11/data stop
很好的解决方案。但不是./pg_ctl
。请使用pg_ctl
。【参考方案4】:
尝试了 sudo 和 su 但没有这样的运气。 刚找到这个 gui
https://github.com/MaccaTech/postgresql-mac-preferences
如果有人可以帮助使用终端命令,将不胜感激,但在此之前,gui 将完成工作。
【讨论】:
以上是关于通过终端在 Mac 上停止 postgreSQL 服务的主要内容,如果未能解决你的问题,请参考以下文章
mac系统上使用CRT作为终端,请教如何终止 traceroute