如何让vacuumdb连接到非默认端口与路径的PostgreSQL集群?
解决vacuumdb连接到正确PostgreSQL集群的问题
错误根源是analyze_new_cluster.sh调用的vacuumdb默认会连接5432端口的本地集群,而你需要操作的是监听5433端口的PostgreSQL 13新集群,以下是几种直接的解决方法:
方法1:手动执行指定端口的vacuumdb命令
跳过脚本,直接运行带端口参数的vacuumdb完成分析任务:
vacuumdb -p 5433 --all --analyze-in-stages
-p 5433指定要连接的端口,--all表示分析所有数据库,--analyze-in-stages是原脚本默认使用的分阶段分析参数,和脚本行为完全一致。
方法2:修改analyze_new_cluster.sh脚本的参数
打开analyze_new_cluster.sh,找到调用vacuumdb的行(通常在脚本末尾附近),在命令中添加-p 5433参数:
原行类似:
vacuumdb --all --analyze-in-stages
修改为:
vacuumdb -p 5433 --all --analyze-in-stages
保存后重新执行脚本即可。
方法3:临时设置PGPORT环境变量
在执行脚本前,先设置PGPORT环境变量,让vacuumdb自动使用指定端口:
export PGPORT=5433 ./analyze_new_cluster.sh
这个环境变量会覆盖vacuumdb的默认端口设置,无需修改脚本。
额外注意事项
- 确保PostgreSQL 13的5433端口集群处于运行状态,可以用
pg_ctl -D /u2/app/postgres/13/data status检查状态。 - 如果新集群的Unix套接字不在默认路径,还可以通过
-h /path/to/socket/dir参数指定套接字目录,但指定端口的方式更通用。
内容的提问来源于stack exchange,提问作者user13708337
相关产品推荐
相关产品推荐

