Homebrew升级PostgreSQL后psql连接/tmp/.s.PGSQL.5432失败求助
故障根本原因
PostgreSQL跨大版本(13→14)升级时,brew不会自动迁移数据目录,新版本无法直接读取旧版本初始化的数据目录,导致服务启动失败,psql请求被拒绝。
方案1:需要保留原有PostgreSQL数据
按顺序执行以下操作:
- 停止当前运行的PostgreSQL 14服务:
brew services stop postgresql - 启动旧版本PostgreSQL 13服务:
brew services start postgresql@13 - 运行
psql确认可正常连接、数据完整后,导出全量数据备份:pg_dumpall > ~/postgres_full_backup.sql - 停止PostgreSQL 13服务:
brew services stop postgresql@13 - 备份旧数据目录,避免误删:
mv /usr/local/var/postgres /usr/local/var/postgres13_backup - 初始化PostgreSQL 14的新数据目录:
initdb /usr/local/var/postgres - 启动PostgreSQL 14服务:
brew services start postgresql - 导入之前的备份数据:
psql -d postgres -f ~/postgres_full_backup.sql - 验证数据无误后,可按需卸载旧版本服务、删除备份目录:
brew uninstall postgresql@13,确认所有数据正常后再删除/usr/local/var/postgres13_backup目录即可。
方案2:不需要保留原有数据,直接重置服务
按顺序执行以下操作:
- 停止所有PostgreSQL相关服务:
brew services stop postgresql && brew services stop postgresql@13 - 删除旧版本数据目录:
rm -rf /usr/local/var/postgres - 初始化PostgreSQL 14的新数据目录:
initdb /usr/local/var/postgres - 启动PostgreSQL 14服务:
brew services start postgresql - 运行
psql验证连接正常即可。
内容的提问来源于stack exchange,提问作者Brainzilla
相关产品推荐
相关产品推荐

