Linux系统安装Postgre和Postgis教程

news2025/4/6 6:45:38

卸载

如果之前没装过可以忽略这一步

卸载前记得备份数据库数据(如果还需要的话)!!!

一、删除 Docker 安装的 PostgreSQL/PostGIS

1. 停止并删除容器
# 查看所有容器
docker ps -a | grep postgres

# 停止并删除容器(替换为实际容器名或ID)
docker stop <容器名或ID> && docker rm <容器名或ID>
2. 删除镜像和数据卷
# 删除镜像
docker images | grep postgres
docker rmi <镜像名或ID>

# 删除数据卷(谨慎操作,会永久删除数据!)
docker volume ls | grep postgres
docker volume rm <卷名>
3. 清理残留文件
# 检查 Docker 数据目录
sudo rm -rf /var/lib/docker/volumes/*postgres*

二、删除 Yum/RPM 安装的 PostgreSQL/PostGIS

1. 卸载所有相关包
# 列出所有已安装的 PostgreSQL/PostGIS 包
sudo yum list installed | grep -E 'postgresql|postgis'

# 卸载主包和依赖(示例,实际包名可能不同)
sudo yum remove postgresql13-server postgresql13-contrib postgis30_13
2. 删除配置和数据文件
# 删除数据目录(默认路径)
sudo rm -rf /var/lib/pgsql/

# 删除配置文件
sudo rm -rf /etc/postgresql-13/

# 删除日志文件
sudo rm -rf /var/log/postgresql/
3. 清理用户和组
sudo userdel -r postgres
sudo groupdel postgres

三、删除源码编译安装的 PostgreSQL/PostGIS

1. 停止服务并删除安装目录
# 停止服务(如果已配置服务)
sudo systemctl stop postgresql
sudo rm -f /etc/systemd/system/postgresql.service

# 删除源码安装目录(根据实际路径)
sudo rm -rf /usr/local/pgsql/
2. 删除数据目录和日志
sudo rm -rf /usr/local/pgsql/data/
sudo rm -rf /var/log/postgresql/
3. 清理环境变量

编辑以下文件,移除 PostgreSQL 相关路径:

sudo nano ~/.bashrc  # 或 /etc/profile
# 删除类似以下内容
export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH

四、通用清理步骤

1. 检查残留进程
pgrep -a postgres  # 如有残留进程,手动终止
sudo pkill -9 postgres
2. 清理临时文件
sudo rm -rf /tmp/.s.PGSQL*
3. 刷新动态链接库缓存
sudo ldconfig

五、验证是否删除干净

# 检查命令是否存在
which psql          # 应无输出
psql --version      # 应提示未找到命令

# 检查目录残留
ls -l /usr/local/pgsql  # 应提示目录不存在

# 检查用户/组
id postgres         # 应提示用户不存在

六、备份提醒

在执行删除操作前,务必备份数据

# 如果数据库仍可访问
pg_dumpall > full_backup.sql

安装

一、yum在线直接安装(环境支持的话推荐这种)

# 查看可用的 postgreSQl 版本
yum list available postgre*

# 安装postgre13
yum install postgreSql13 -y

#查看可用postgis版本
yum list available postgis*

#安装postgis30_13

yum install postgis30_13 -y

注意:postgis版本需要与postgresql对应,比如此处30_13,代表我的postgis插件版本是3.0,适配的postgresql版本是13

二、离线安装postgresql

官网资源包下载地址:PostgreSQL: File Browser

1、安装前的准备

1.1安装依赖
1.1.1安装编译工具
yum install -y gcc gcc-c++

这个命令安装了 GNU编译器集合(gcc)和 GNU C++ 编译器(gcc-c++)。这些是编译 PostgreSQL 源代码所必需的。

1.1.2安装 readline 开发库
yum install -y readline-devel

readline-devel 包提供了额外的头文件和库,用于开发与 readline 库兼容的程序。readline 是一个库,用于提供命令行编辑和历史功能,PostgreSQL 需要这个库来支持其命令行工具。

1.1.3 安装 zlib 开发库
yum install -y zlib-devel

zlib-devel 包包含了 zlib 压缩库的开发文件,包括头文件和用于链接的库文件。PostgreSQL 使用 zlib 来进行数据压缩。

1.2 创建postgres用户与用户组
#创建postgres用户组
groupadd postgres

#创建postgres用户,并添加到postgres用户组
useradd postgres -r -g  postgres

 

  • useradd postgres:创建一个名为postgres的新用户。
  • -r:指定创建的是一个系统账户。系统账户通常用于运行系统服务,而不是普通用户登录。
  • -g postgres:指定用户的主组为postgres。如果该组不存在,则会创建一个同名的组。

2 开始安装

从官网下载压缩包以后,上传到Linux系统某个文件夹下

# 使用如下命令解压
tar -zxvf postgresql-14.4.tar.gz 

# 进入解压后的目录

cd postgresql-14.4

#开始安装

./configure 

make

make install

3 创建存放postgresql数据的目录,初始化数据库并启动

3.1 创建数据目录
mkdir /usr/pgsql-13/data
3.2 创建日志目录
/usr/pgsql-13/log
3.3 修改数据、日志目录的所属用户与用户组均为postgres
chown -R postgres:postgres /usr/pgsql-13/data

chown -R postgres:postgres /usr/pgsql-13/log
3.4 初始化数据库

1 切换到postgres用户

su postgres

2 初始化数据库

/usr/pgsql-13/bin/initdb -D /usr/pgsql-13/data

命令解释

/usr/pgsql-13/bin/initdb -D /usr/pgsql-13/data是一个用于初始化 PostgreSQL 数据库集群的命令。

命令参数

/usr/pgsql-13/bin/initdb: 这是initdb命令的路径,initdb是 PostgreSQL 提供的一个用于创建新的数据库集群的工具。
-D /usr/pgsql-13/data: -D参数指定了数据库集群的数据目录,即/usr/pgsql-13/data。这个目录将存储所有数据库文件。

3.5 启动数据库,并将日志打印到pg.log文件上
/usr/pgsql-13/bin/pg_ctl -D /usr/pgsql-13/data -l /usr/pgsql-13/log/pg.log start

 

命令解释

该命令用于启动PostgreSQL数据库服务器。

命令参数解释

-D /usr/pgsql-13/data: 指定PostgreSQL数据目录的路径。这是数据库文件存储的地方。
-l /usr/pgsql-13/log/pg.log: 指定日志文件的路径,PostgreSQL的启动和运行日志将记录在此文件中。
start: 指示pg_ctl启动PostgreSQL服务器。

3.6 进入数据库和修改密码
3.6.1 进入数据库
/usr/pgsql-13/bin/psql -p 5432
3.6.2 修改管理员postgres的密码
ALTER USER postgres WITH PASSWORD 'postgres';
3.7 修改配置
3.7.1 设置连接访问规则(修改配置文件pg_hba.conf,在文件末尾添加)

1 进入目录

cd /usr/pgsql-13/data/

2 编辑pg_hba.conf文件

vim pg_hba.conf

 3 在文件末尾添加

host    all             all              0.0.0.0/0              md5

在PostgreSQL的pg_hba.conf 文件中,“host all all 0.0.0.0/0 md5”是一种连接访问规则:

  • host:表示这是针对主机连接的规则类型。
  • all(第一个):适用于所有的数据库。
  • 0.0.0.0/0:这是一个网络标识。其中“0.0.0.0”为IP地址,“/0”为子网掩码,表示允许来自任何IP地址的主机连接。
  • md5:这是一种认证方法。使用md5意味着客户端连接数据库时需要提供经过md5加密后的密码进行身份验证。与“trust”(信任模式不需要密码)相比,这种方式更安全,适用于需要一定安全保障的场景,如生产环境或对外提供服务且需要限制访问权限的数据库环境。
3.7.2 设置PostgreSQL数据库服务器监听所有可用的网络接口上的传入连接请求

1 进入目录

cd /usr/pgsql-13/data/

2 编辑postgresql.conf文件

vim postgresql.conf

 修改listen_address为任意ip ,即 listen_addresses = '*'

如果此步骤报错,切换到root用户执行

3.7.3 重启数据库
/usr/pgsql-13/bin/pg_ctl -D /usr/pgsql-13/data -l /usr/pgsql-13/log/pg.log restart
3.7.8 测试连接

使用数据库连接工具测试即可,如果连接不上,看看防火墙

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2329033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LXC 导入多Linux系统

前提要求 ubuntu下安装lxd 参考Rockylinux下安装lxd 参考LXC 源替换参考LXC 容器端口发布参考LXC webui 管理<

6547网:蓝桥STEMA考试 Scratch 试卷(2025年3月)

『STEMA考试是蓝桥青少教育理念的一部分&#xff0c;旨在培养学生的知识广度和独立思考能力。考试内容主要考察学生的未来STEM素养、计算思维能力和创意编程实践能力。』 一、选择题 第一题 运行下列哪个程序后&#xff0c;飞机会向左移动&#xff1f; ( ) A. …

使用Webpack搭建React项目:从零开始

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

STM32提高篇: CAN通讯

STM32提高篇: CAN通讯 一.CAN通讯介绍1.物理层2.协议层二.STM32CAN外设1.CAN控制器的3种工作模式2.CAN控制器的3种测试模式3.功能框图三.CAN的寄存器介绍1.环回静默模式测试2.双击互发测试四.CAN的HAL代码解读一.CAN通讯介绍 CAN(Controller Area Network 控制器局域网,简称…

25.Reactor

预备知识 std::bind template <class Fn, class... Args>/* unspecified */ bind (Fn&& fn, Args&&... args);解释&#xff1a; std::bind(&TcpServer::Accepter, this, std::placeholders::_1) 这段代码使用了 C11 中的 std::bind 函数&#xff0…

Linux进程间通信——有名管道

一.概念 函数形式&#xff1a;int mkfifo(const char \*filename,mode_t mode); 功能&#xff1a;创建管道文件 参数&#xff1a;管道文件文件名\路径&#xff0c;权限&#xff0c;创建的文件权限仍然和umask有关系。 返回值&#xff1a;创建成功返回0&#xff0c;创建失败返回…

Axure RP9.0教程: 查询条件隐藏与显示(综合了动态面板状态切换及展开收缩效果实现)

文章目录 引言I 原型显示/隐藏搜索框思路步骤详细操作II 若依 ruoyi 显示/隐藏搜索框 & 显示隐藏列自定义设置显示隐藏列显示/隐藏搜索框引言 数据筛选有大量的查询条件时,可以选择查询隐藏效果。 I 原型显示/隐藏搜索框 综合了动态面板状态切换及展开收缩效果实现 思…

【漫话机器学习系列】183.非参数方法(Non-parametric Methods)

非参数方法&#xff08;Non-parametric Methods&#xff09;详解 概述 非参数方法是一类在统计学和机器学习中广泛应用的技术&#xff0c;它的特点是不对特征值和目标值之间的关系做具体的假设。与传统的参数方法&#xff08;如线性回归、逻辑回归等&#xff09;不同&#xf…

智能驾驶中预测模块简介

1.轨迹预测的定义 轨迹预测是自动驾驶系统“感知-预测-规控”流程中的核心环节&#xff0c;位于感知与规划模块之间&#xff0c;起到承上启下的作用。感知系统负责检测道路环境中的动态和静态元素&#xff0c;包括车辆、行人、自行车、交通标志、车道线等&#xff0c;而预测模…

剑指offer经典题型(一)

本期我们将开始进行剑指offer中经典题型的学习。 数组相关 题目1&#xff1a;在一个二维数组中&#xff08;每个一维数组的长度相同&#xff09;&#xff0c;每一行都按照从左到右递增的顺序排序&#xff0c;每一列都按照从上到下递增的顺序排序。请完成一个函数&#xff0c;输…

ctfshow VIP题目限免 版本控制泄露源码2

根据题目提示是版本控制泄露源码 版本控制&#xff08;Version Control&#xff09;是一种在软件开发和其他领域中广泛使用的技术&#xff0c;用于管理文件或项目的变更历史。 主流的版本控制工具&#xff1a; ‌Git‌&#xff1a;目前最流行的分布式版本控制系统。‌SVN‌&am…

蓝牙跳频扩频技术的作用:提升抗干扰能力与通信可靠性的核心机制

在无线通信技术领域&#xff0c;蓝牙&#xff08;Bluetooth&#xff09;以其短距离、低功耗和高兼容性成为连接电子设备的首选方案。其核心技术之一 ——跳频扩频&#xff08;Frequency Hopping Spread Spectrum, FHSS&#xff09;&#xff0c;是蓝牙在2.4 GHz ISM频段复杂电磁…

推荐系统(二十二):基于MaskNet和WideDeep的商品推荐CTR模型实现

在上一篇文章《推荐系统&#xff08;二十一&#xff09;&#xff1a;基于MaskNet的商品推荐CTR模型实现》中&#xff0c;笔者基于 MaskNet 构建了一个简单的模型。笔者所经历的工业级实践证明&#xff0c;将 MaskNet 和 Wide&Deep 结合应用&#xff0c;可以取得不错的效果&…

Ubuntu挂载HDD迁移存储PostgreSQL数据

关联博客&#xff1a;windows通用网线连接ubuntu实现ssh登录、桌面控制、文件共享 背景&#xff1a; 在个人ubuntu机器上安装了pgsql&#xff0c;新建了一张表插入了2000w数据用于模拟大批量数据分页查询用&#xff0c;但是发现查询也不慢&#xff08;在公司测试环境查询1700…

Flink CDC Pipeline mysql to doris

版本兼容 flink 与 flink-cdc版本兼容 flink 与doris版本兼容 运行同步程序 最终在 flink-1.20.1 与 flink-cdc-3.1.1 跑通测试 配置yaml文件 [rootchb1 flink-cdc-3.1.1]# cat mysql2doris.yaml ##################################################################…

Git 教程:从 0 到 1 全面指南 教程【全文三万字保姆级详细讲解】

目录 什么是 Git &#xff1f; Git 与 SVN 区别 Git 安装配置 Linux 平台上安装 Centos/RedHat 源码安装 Windows 平台上安装 使用 winget 工具 Mac 平台上安装 Git 配置 用户信息 文本编辑器 差异分析工具 查看配置信息 生成 SSH 密钥&#xff08;可选&#xf…

【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 的未来:从微服务到云原生的演进

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、引子&…

beego文件上传

1file.go 2html代码 3路由设置 beego.Router("/file/Upload", &controllers.FileUploadController{}, "post:Upload") 注意 1&#xff0c;得新建个upload文件夹 2&#xff0c;路由设置严格区分大小写。 biiego文件下载上传代码 github 觉得不错Star下

2025-04-05 吴恩达机器学习5——逻辑回归(2):过拟合与正则化

文章目录 1 过拟合1.1 过拟合问题1.2 解决过拟合 2 正则化2.1 正则化代价函数2.2 线性回归的正则化2.3 逻辑回归的正则化 1 过拟合 1.1 过拟合问题 欠拟合&#xff08;Underfitting&#xff09; 模型过于简单&#xff0c;无法捕捉数据中的模式&#xff0c;导致训练误差和测试误…

基于Python的图书借阅推荐系统设计与实现

【Python】基于Python的图书借阅推荐系统设计与实现 &#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 本项目基于Python语言和Django框架开发&#xff0c;旨在为用户提供一个高可靠、高便捷的图…