You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL 12在macOS Catalina安装报错:已有服务器运行,如何解决?

解决macOS Catalina 10.15.6安装PostgreSQL 12时“已有服务器运行”的错误

我来帮你搞定这个问题,这个错误提示完全准确——你的Mac上确实已经有PostgreSQL实例在占用默认的5432端口了,下面分两种常见场景给你对应的解决方案:

第一步:先确认运行中的PostgreSQL进程

先打开终端,输入以下命令来检查是否真的有PostgreSQL进程在后台运行:

ps aux | grep postgres

如果输出结果里除了最后一行grep --color=auto postgres之外还有其他条目,就说明确实有PostgreSQL服务在运行,接下来看你的需求选解决方案。

另外也可以直接检查默认端口5432是否被占用:

lsof -i :5432

如果有输出,就证明这个端口已经被现有PostgreSQL服务占用了。

场景1:不需要同时运行多个服务,停止现有服务后继续安装

如果你只需要安装PostgreSQL 12,不需要保留正在运行的旧服务,可以按以下步骤停止它:

  • 如果之前是用Homebrew安装的PostgreSQL,直接用这条命令停止服务:
    brew services stop postgresql
    
  • 如果是通过官方安装包或者其他方式安装的,先找到服务名:
    launchctl list | grep postgres
    
    然后用服务名停止服务:
    launchctl stop [找到的服务名]
    
  • 如果上面的方法都不管用,直接杀掉进程:在ps aux | grep postgres的结果里,找到进程ID(第二列的数字),然后执行:
    kill [进程ID]
    
    要是进程无法正常终止,加-9强制杀掉:
    kill -9 [进程ID]
    

停止服务后,重新运行PostgreSQL 12的安装程序,应该就能顺利完成了。

场景2:需要同时运行多个PostgreSQL服务,修改新安装的端口

如果你想要保留现有服务,同时安装并运行PostgreSQL 12,只需要修改新版本的端口即可:

  • 如果安装程序还没完成,回到安装步骤,找“端口设置”相关的选项,把默认的5432改成其他未被占用的端口(比如5433、5434都可以),然后继续安装。
  • 如果已经安装到一半出错了,找到PostgreSQL 12的安装目录(默认路径是/Library/PostgreSQL/12/),进入data文件夹,找到postgresql.conf文件,用文本编辑器打开它,找到这一行:
    port = 5432
    
    把它改成你想要的端口,比如:
    port = 5433
    
    保存文件后,启动PostgreSQL 12的服务,以后连接这个新版本的时候需要指定端口,比如:
    psql -p 5433 -U postgres
    

内容的提问来源于stack exchange,提问作者Trinh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 12:17:32