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

MacOS Sonoma(M1芯片)安装PostgreSQL后psql连接失败如何解决?

M1 MacOS Sonoma 下PostgreSQL启动失败的解决办法

步骤1:查看具体错误日志

先通过日志定位问题根源,执行以下命令查看最新的20条日志:

# M1芯片的brew默认路径是/opt/homebrew,Intel芯片是/usr/local,根据自己的情况调整
tail -n 20 /opt/homebrew/var/log/postgres.log

日志里会明确提示失败原因(比如权限错误、数据目录损坏等)。

步骤2:重新初始化数据库(常见解决办法)

如果日志显示数据目录未初始化或损坏,按以下操作:

  • 停止当前服务:
    brew services stop postgresql
    
  • 备份旧数据目录(如果有需要保留的数据):
    mv /opt/homebrew/var/postgres /opt/homebrew/var/postgres.bak
    
  • 初始化新的数据库目录:
    initdb --locale=C -E UTF-8 /opt/homebrew/var/postgres
    
  • 重新启动服务:
    brew services start postgresql
    

启动后执行psql测试连接。

步骤3:修复数据目录权限

如果日志提示权限不足,执行以下操作:

  • 停止服务:
    brew services stop postgresql
    
  • 修改数据目录的所有者为当前用户:
    sudo chown -R $(whoami) /opt/homebrew/var/postgres
    
  • 启动服务并测试:
    brew services start postgresql
    psql
    

步骤4:指定Socket路径连接

如果PostgreSQL的Socket文件不在默认的/tmp目录,直接指定Socket路径连接:

psql -h /opt/homebrew/var/postgres

或者修改postgresql.conf文件(路径:/opt/homebrew/var/postgres/postgresql.conf),找到unix_socket_directories参数,添加/tmp路径:

unix_socket_directories = '/opt/homebrew/var/postgres,/tmp'

修改后重启服务:

brew services restart postgresql

步骤5:检查端口占用

如果5432端口被其他进程占用,先查看占用进程:

lsof -i :5432

使用kill -9 <进程PID>杀掉占用进程,或者修改PostgreSQL的端口(编辑postgresql.conf里的port参数,重启服务后用psql -p <新端口>连接)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 10:35:08