当前位置: 首页 > news >正文

Ubuntu 20.04卸载并重装 PostgreSQL

在 Ubuntu 下彻底卸载并重新安装 PostgreSQL(包括所有版本及其数据目录)的步骤

下面是一个在 Ubuntu 下彻底卸载并重新安装 PostgreSQL(包括所有版本及其数据目录)的步骤。

文章目录

  • 在 Ubuntu 下彻底卸载并重新安装 PostgreSQL(包括所有版本及其数据目录)的步骤
    • 一、备份(可选,但强烈推荐)
    • 二、卸载 PostgreSQL 并删除残留文件
    • 三、重新安装 PostgreSQL 与 PostGIS
    • 四、安装postgispgpointcloud扩展
    • 五、验证安装与启动状况
    • 六、恢复数据(如果做了备份)

一、备份(可选,但强烈推荐)

# 切换到 postgres 用户,导出所有数据库
sudo -u postgres pg_dumpall > ~/all_databases_backup.sql

~/all_databases_backup.sql 拷到安全位置。


二、卸载 PostgreSQL 并删除残留文件

# 1. 停止服务
sudo systemctl stop postgresql# 2. 卸载所有 postgresql 包
sudo apt purge -y postgresql* libpq-dev# 3. 删除配置和数据目录
sudo rm -rf /etc/postgresql
sudo rm -rf /etc/postgresql-common
sudo rm -rf /var/lib/postgresql
sudo rm -rf /var/log/postgresql
sudo rm -rf /var/run/postgresql# 4. 清理无用依赖和缓存
sudo apt autoremove -y
sudo apt autoclean

此时系统中已无 PostgreSQL 及其配置、数据残留。


三、重新安装 PostgreSQL 与 PostGIS

# 1. 更新包列表
sudo apt update# 2. 安装 PostgreSQL(默认版本)及其 contrib 扩展
sudo apt install -y postgresql postgresql-contrib# 3. 如果需要 PostGIS 和 pointcloud 支持,一并安装:
sudo apt install -y postgis postgresql-*-pointcloud

安装完成后,APT 会自动为你创建并启动一个名为 main 的 cluster(通常对应当前系统的 PostgreSQL 主版本)。

ERROR: extension “postgis” is not available

PostgreSQL 找不到相应版本的 PostGIS 和 PointCloud 控制文件,也就是说系统里并没有为 PostgreSQL 17 安装这些扩展包。Ubuntu 默认仓库里可能只给早期版本打包,或者你还没装上对应的 “postgresql-17-postgis”、“postgresql-17-pgpointcloud” 这样的版本化包


四、安装postgispgpointcloud扩展

  1. 更新 apt 索引

    sudo apt update
    
  2. 搜索可用的 postgis 包

    apt-cache search postgresql-17-postgis
    # 也可以搜 pointcloud
    apt-cache search postgresql-17-pgpointcloud
    

    如果能看到类似 postgresql-17-postgis-3postgresql-17-pgpointcloud 的条目,直接安装它们:

  3. 安装版本化扩展

    sudo apt install -y postgresql-17-postgis-3 postgresql-17-pgpointcloud
    
  4. 重启你的 cluster

    sudo pg_ctlcluster 17 main restart
    
  5. 进入 psql 创建扩展

    sudo -u postgres psql -d postgis_aa
    CREATE EXTENSION postgis;
    CREATE EXTENSION pointcloud;
    \q
    
(base) zhanyong@ubuntu:~/cesium-deepsea/SLAM$ apt-cache search postgresql-17-postgis
postgresql-17-postgis-3 - Geographic objects support for PostgreSQL 17
postgresql-17-postgis-3-dbgsym - debug symbols for postgresql-17-postgis-3
postgresql-17-postgis-3-scripts - Geographic objects support for PostgreSQL 17 -- SQL scripts
(base) zhanyong@ubuntu:~/cesium-deepsea/SLAM$ 

安装对应的扩展即可

sudo apt install -y  postgresql-17-postgis-3 postgresql-17-postgis-3-scripts
sudo apt install -y  postgresql-17-pointcloudsudo -u postgres psql -d postgis_aa
CREATE EXTENSION postgis;
CREATE EXTENSION pointcloud;

如果成功应该显示如下内容:

postgis_aa=# CREATE EXTENSION postgis;
CREATE EXTENSION
postgis_aa=# CREATE EXTENSION pointcloud;
CREATE EXTENSION

五、验证安装与启动状况

# 查看 cluster 状态
sudo pg_lsclusters# 启动 cluster(如果未自动启动)
sudo pg_ctlcluster $(pg_lsclusters -h | awk 'NR==1{print $1, $2}') main start# 切换到 postgres 用户并进入 psql
sudo -i -u postgres psql

psql 里,你可以执行:

SELECT version();
\l      -- 列出数据库
\q      -- 退出

如果输出了 PostgreSQL 版本号,且没有报错,说明安装和集群启动都已成功。


六、恢复数据(如果做了备份)

# 作为 postgres 用户恢复所有库
sudo -i -u postgres psql < ~/all_databases_backup.sql

恢复完成后,不要忘了删除或保管好备份文件。


完成上述步骤后,你就拥有了一个全新的、正常运行的 PostgreSQL 环境,可以继续创建数据库、启用 PostGIS/pointcloud 扩展,并建表了。

相关文章:

  • 【算法创新+设计】灰狼算法GWO+扰动算子,求解大规模TSP问题利器
  • 基于python的机器学习(七)—— 数据特征选择
  • (八)深度学习---计算机视觉基础
  • 大语言模型 16 - Manus 超强智能体 Prompt分析 原理分析 包含工具列表分析
  • 【notepad++如何设置成中文界面呢?】
  • 通信协议详解(分层技术解析)
  • vue3使用 Tailwind CSS (4.多版本)
  • Babylon.js学习之路《七、用户交互:鼠标点击、拖拽与射线检测》
  • OBOO鸥柏丨AI数字人触摸屏查询触控人脸识别语音交互一体机上市
  • pikachu靶场 暴力破解
  • 系统程序变更管理:确保IT环境稳定性和安全性的关键
  • 【东枫科技】usrp rfnoc 开发环境搭建
  • 【Java高阶面经:数据库篇】13. MySQL 并发控制秘籍:MVCC 协议与隔离级别深度解析
  • RAG 挑战赛冠军方案解析:从数据解析到多路由器检索的工程实践,推荐阅读!
  • 2025第一届轩辕杯--Crypto--WriteUp
  • [250521] DBeaver 25.0.5 发布:SQL 编辑器、导航器全面升级,新增 Kingbase 支持!
  • Android本地语音识别引擎深度对比与集成指南:Vosk vs SherpaOnnx
  • python代码绘制某只股票最近90天的K线图、均线、量能图
  • 线上 Linux 环境 MySQL 磁盘 IO 高负载深度排查与性能优化实战
  • CentOS 10:启动telnet服务
  • 专业网站建设价格大全/seo刷点击软件
  • 做外贸网站渠道/最近的国际新闻热点
  • 怎么用织梦做本地网站/推广论坛有哪些
  • 深圳龙岗疫情最新消息多少例了/seo营销专员
  • 5118站长网站/搜索引擎的作用
  • 网站要怎么做才能让360收录/网络营销企业案例分析