Ubuntu 21.10完全重装PostgreSQL 13后psql无法连接服务器问题求助
问题根因
- 卸载旧版PostgreSQL时未同步删除集群配置,残留的PostgreSQL 12版本集群原本占用默认5432端口,但对应二进制文件已被清除无法启动
- 新安装的PostgreSQL 13集群因5432端口被残留配置占用,自动分配到5433端口启动成功,但psql命令默认尝试连接5432端口的Unix套接字,因此抛出连接失败错误
解决方案
场景1:无需保留PostgreSQL 12的旧数据
直接清理残留配置并修改13版本端口为默认值即可:
- 执行命令删除12版本残留集群:
sudo pg_dropcluster 12 main --stop - 修改PostgreSQL 13集群端口为默认5432:
- 打开配置文件:
sudo nano /etc/postgresql/13/main/postgresql.conf - 找到
port = 5433配置项,修改为port = 5432后保存退出 - 重启集群使配置生效:
sudo systemctl restart postgresql@13-main.service
- 打开配置文件:
- 验证连接:执行
psql -U postgres即可正常连接,若当前系统用户未配置数据库权限,可执行sudo -u postgres psql连接
场景2:需要保留PostgreSQL 12的旧数据
如果需要读取12版本集群的旧数据,按如下步骤操作:
- 重装PostgreSQL 12二进制文件:
sudo apt install postgresql-12 - 启动12版本集群:
sudo pg_ctlcluster 12 main start - 临时连接13版本集群的方法:执行
psql -p 5433 -U postgres指定端口即可正常连接 - 如需迁移旧数据到13版本,可使用
pg_dumpall工具导出12版本全量数据,再导入到13版本集群,迁移完成后可按场景1的步骤清理12版本集群、修改13版本端口为默认值
内容的提问来源于stack exchange,提问作者Mapper
相关产品推荐
相关产品推荐

