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

Mac运行Docker Compose后pgAdmin 4崩溃无法启动求助

解决Mac上pgAdmin 4崩溃及PostgreSQL端口占用问题

一、停止自动启动的系统PostgreSQL进程

重启后自动占用5432端口的是系统自带或通过brew安装的PostgreSQL服务,按以下步骤彻底停用:

  • 先确认进程归属:执行 ps aux | grep postgres,从进程路径判断是brew安装版本还是系统原生版本
  • 停止当前运行的进程:
    • 若为brew安装:sudo brew services stop postgresql
    • 若为系统原生版本:找到对应版本的plist文件(比如PostgreSQL 14的路径是/Library/LaunchDaemons/com.edb.launchd.postgresql-14.plist),执行 sudo launchctl unload /Library/LaunchDaemons/com.edb.launchd.postgresql-XY.plist(将XY替换为你的实际版本号)
  • 禁用自动启动,防止重启后再次占用端口:
    • brew安装版本:sudo brew services disable postgresql
    • 系统原生版本:sudo launchctl disable system/com.edb.launchd.postgresql-XY

二、修复pgAdmin 4的段错误崩溃

强制终止本地PostgreSQL进程后,pgAdmin的连接缓存或配置文件可能被损坏,按以下步骤重置:

  • 彻底关闭所有pgAdmin相关进程:sudo killall pgAdmin4
  • 删除pgAdmin的配置缓存目录:rm -rf ~/Library/Application\ Support/pgAdmin/
  • 重新启动pgAdmin 4,它会自动生成全新的配置文件
  • 如果之前本地PostgreSQL的 data 目录因强制终止损坏,执行 pg_resetwal /usr/local/var/postgres(替换为你的实际data目录路径)修复,再启动本地PostgreSQL即可

三、长期避免端口冲突的方案

修改Docker Compose的端口映射,让容器内的PostgreSQL使用非默认端口对外暴露:

  • 打开你的docker-compose.yml文件,找到postgres服务的ports配置块,修改为:
    services:
      postgres:
        image: postgres:latest
        ports:
          - "5433:5432"  # 主机端口用5433,容器内部保持默认的5432不变
        # 保留其他原有配置
    
  • 后续启动Docker Compose时就不会占用5432端口,本地pgAdmin和PostgreSQL可正常运行,连接容器内数据库时使用端口5433即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:50:05