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

macOS更新后PostgreSQL连接报错:无法找到指定套接字文件

macOS更新后PostgreSQL连接失败:找不到/tmp/.s.PGSQL.5432套接字的解决办法

1. 检查并启动PostgreSQL服务

如果PostgreSQL服务未运行,会直接导致套接字不存在:

  • 若用Homebrew安装,先查看服务状态:
    brew services list
    
    看到postgresql状态为stopped时,启动服务:
    brew services start postgresql
    
  • 非Homebrew安装的情况,检查服务状态:
    pg_ctl -D /usr/local/var/postgres status
    
    未运行则执行启动命令:
    pg_ctl -D /usr/local/var/postgres start
    

2. 修复套接字路径不匹配问题

macOS更新后,PostgreSQL可能将套接字生成到/private/tmp/而非/tmp/,可通过软链接解决:

  • 先定位实际套接文件位置:
    find / -name ".s.PGSQL.5432" 2>/dev/null
    
  • 若输出为/private/tmp/.s.PGSQL.5432,创建软链接到/tmp/目录:
    ln -s /private/tmp/.s.PGSQL.5432 /tmp/.s.PGSQL.5432
    

3. 修改配置文件固定套接字路径

为避免后续系统更新再次出现问题,直接修改PostgreSQL配置固定套接字目录:

  • 打开配置文件(以下为Homebrew默认路径,其他安装方式路径可能不同):
    open /usr/local/var/postgres/postgresql.conf
    
  • 找到unix_socket_directories参数,修改为:
    unix_socket_directories = '/tmp'
    
  • 重启PostgreSQL服务使配置生效:
    brew services restart postgresql
    # 非Homebrew安装用此命令
    pg_ctl -D /usr/local/var/postgres restart
    

4. 检查/tmp目录权限

若以上步骤无效,可能是/tmp目录权限异常:

  • 查看当前权限:
    ls -ld /tmp
    
  • 正常权限应为drwxrwxrwt,若不符则修复:
    sudo chmod 1777 /tmp
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:18:14