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

PostgreSQL 14升级至15时pg_upgrade失败,权限修改无效求助

PostgreSQL 14升级至15时pg_upgrade连接失败的解决步骤

问题核心

执行pg_upgrade升级PostgreSQL 14到15时,已将旧数据目录/var/lib/postgres/olddata权限改为0700,但仍出现socket连接失败、无法启动源Postmaster的错误。

解决步骤

1. 修复旧数据目录的所有者权限

仅修改目录权限不足以解决问题,需确保目录及所有子项归postgres用户所有:

sudo chown -R postgres:postgres /var/lib/postgres/olddata

执行后验证权限:

sudo ls -ld /var/lib/postgres/olddata

输出需显示drwx------ postgres postgres。

2. 配置临时socket目录

pg_upgrade指定了socket目录为/var/lib/postgres/tmp,需确保该目录存在且权限正确:

# 创建目录(若不存在)
sudo mkdir -p /var/lib/postgres/tmp
# 设置权限和所有者
sudo chmod 0700 /var/lib/postgres/tmp && sudo chown postgres:postgres /var/lib/postgres/tmp

3. 手动验证旧版本服务可正常启动

先排除旧版本PostgreSQL本身的启动问题:

# 以postgres用户启动14版本服务
sudo -u postgres /opt/pgsql-14/bin/pg_ctl start -D /var/lib/postgres/olddata -l /tmp/pg14_start.log

查看启动日志排查错误:

cat /tmp/pg14_start.log

若服务启动失败,先解决对应问题(如配置文件错误)后再继续升级。

4. 以postgres用户身份执行pg_upgrade

避免用root直接执行,切换到postgres用户运行升级命令:

sudo -u postgres pg_upgrade -b /opt/pgsql-14/bin -B /usr/bin -d /var/lib/postgres/olddata -D /var/lib/postgres/data

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:52:45