为什么我通过Homebrew安装的PostgreSQL执行命令会立即被杀死?
解决方案
步骤1:排查架构兼容性(Apple Silicon Mac优先排查)
macOS会直接杀死架构不匹配的二进制程序,如果你使用的是M系列芯片的Mac,优先验证如下配置:
- 执行
arch查看当前终端架构,Apple Silicon设备正常返回值为arm64,如果返回x86_64说明你是通过Rosetta模式打开的终端 - 执行
brew --prefix验证Homebrew架构,Apple Silicon版本Homebrew正常返回/opt/homebrew,Intel版本返回/usr/local
如果终端架构和Homebrew架构不匹配,你需要关闭终端的Rosetta兼容模式,重新安装对应架构的Homebrew后再重新安装PostgreSQL。
步骤2:重装损坏的PostgreSQL二进制包
架构没有问题的情况下,大概率是Homebrew安装的PostgreSQL二进制文件损坏或签名失效,按如下操作重装:
- 先停止运行中的PostgreSQL服务:
brew services stop postgresql - 卸载现有PostgreSQL包(如果需要保留原有数据库数据,删除
--zap参数即可):brew uninstall --zap postgresql - 更新Homebrew本地源到最新版本:
brew update - 重新安装PostgreSQL:
brew install postgresql - 重启PostgreSQL服务:
brew services start postgresql - 验证命令是否恢复正常:
psql --version
步骤3:放行系统安全拦截
如果重装后仍然出现被杀死的提示,是系统安全机制拦截了PostgreSQL的运行,按如下操作放行:
- 打开macOS「系统设置」→「隐私与安全性」
- 下拉到「安全性」分区,查看是否存在
postgresql已被阻止使用的提示,点击提示右侧的「允许」按钮 - 重新执行PostgreSQL相关命令验证即可。
注意:卸载时如果没有加
--zap参数,你之前创建的所有数据库数据都会被保留,重装完成启动服务后可直接访问。
内容的提问来源于stack exchange,提问作者snl
相关产品推荐
相关产品推荐

