Linux系统安装Postgre和Postgis教程
卸载
如果之前没装过可以忽略这一步
卸载前记得备份数据库数据(如果还需要的话)!!!
一、删除 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_13yum 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 makemake 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/datachown -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 测试连接
使用数据库连接工具测试即可,如果连接不上,看看防火墙
相关文章:
Linux系统安装Postgre和Postgis教程
卸载 如果之前没装过可以忽略这一步 卸载前记得备份数据库数据(如果还需要的话)!!! 一、删除 Docker 安装的 PostgreSQL/PostGIS 1. 停止并删除容器 # 查看所有容器 docker ps -a | grep postgres# 停止并删除容器(替换为实际…...
LXC 导入多Linux系统
前提要求 ubuntu下安装lxd 参考Rockylinux下安装lxd 参考LXC 源替换参考LXC 容器端口发布参考LXC webui 管理<...
6547网:蓝桥STEMA考试 Scratch 试卷(2025年3月)
『STEMA考试是蓝桥青少教育理念的一部分,旨在培养学生的知识广度和独立思考能力。考试内容主要考察学生的未来STEM素养、计算思维能力和创意编程实践能力。』 一、选择题 第一题 运行下列哪个程序后,飞机会向左移动? ( ) A. …...
使用Webpack搭建React项目:从零开始
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…...
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);解释: std::bind(&TcpServer::Accepter, this, std::placeholders::_1) 这段代码使用了 C11 中的 std::bind 函数࿰…...
Linux进程间通信——有名管道
一.概念 函数形式:int mkfifo(const char \*filename,mode_t mode); 功能:创建管道文件 参数:管道文件文件名\路径,权限,创建的文件权限仍然和umask有关系。 返回值:创建成功返回0,创建失败返回…...
Axure RP9.0教程: 查询条件隐藏与显示(综合了动态面板状态切换及展开收缩效果实现)
文章目录 引言I 原型显示/隐藏搜索框思路步骤详细操作II 若依 ruoyi 显示/隐藏搜索框 & 显示隐藏列自定义设置显示隐藏列显示/隐藏搜索框引言 数据筛选有大量的查询条件时,可以选择查询隐藏效果。 I 原型显示/隐藏搜索框 综合了动态面板状态切换及展开收缩效果实现 思…...
铁电液晶(FLC)与反铁电液晶(AFLC)
### **铁电液晶(FLC)与反铁电液晶(AFLC)的原理、区别及应用** --- ## **1. 基本原理** ### **(1)铁电液晶(Ferroelectric Liquid Crystal, FLC)** - **分子结构**: …...
【漫话机器学习系列】183.非参数方法(Non-parametric Methods)
非参数方法(Non-parametric Methods)详解 概述 非参数方法是一类在统计学和机器学习中广泛应用的技术,它的特点是不对特征值和目标值之间的关系做具体的假设。与传统的参数方法(如线性回归、逻辑回归等)不同…...
智能驾驶中预测模块简介
1.轨迹预测的定义 轨迹预测是自动驾驶系统“感知-预测-规控”流程中的核心环节,位于感知与规划模块之间,起到承上启下的作用。感知系统负责检测道路环境中的动态和静态元素,包括车辆、行人、自行车、交通标志、车道线等,而预测模…...
剑指offer经典题型(一)
本期我们将开始进行剑指offer中经典题型的学习。 数组相关 题目1:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输…...
ctfshow VIP题目限免 版本控制泄露源码2
根据题目提示是版本控制泄露源码 版本控制(Version Control)是一种在软件开发和其他领域中广泛使用的技术,用于管理文件或项目的变更历史。 主流的版本控制工具: Git:目前最流行的分布式版本控制系统。SVN&am…...
蓝牙跳频扩频技术的作用:提升抗干扰能力与通信可靠性的核心机制
在无线通信技术领域,蓝牙(Bluetooth)以其短距离、低功耗和高兼容性成为连接电子设备的首选方案。其核心技术之一 ——跳频扩频(Frequency Hopping Spread Spectrum, FHSS),是蓝牙在2.4 GHz ISM频段复杂电磁…...
Kafka 如何保证消息可靠性?
Kafka 保证消息可靠性主要通过以下几个机制来实现,从生产者到消费者的整个链路上都设计了相应的保障措施: 1. 生产者(Producer)端的可靠性 ✅ a. acks 参数(确认机制) acks0:生产者不等待任何…...
ngx_ssl_init
定义在 src\event\ngx_event_openssl.c ngx_int_t ngx_ssl_init(ngx_log_t *log) { #if OPENSSL_VERSION_NUMBER > 0x10100003Lif (OPENSSL_init_ssl(OPENSSL_INIT_LOAD_CONFIG, NULL) 0) {ngx_ssl_error(NGX_LOG_ALERT, log, 0, "OPENSSL_init_ssl() failed")…...
docker swarm常用命令
1、初始化Swarm集群 用于初始化一个Swarm集群,并将当前节点设置为Manager节点。 用法:docker swarm init --advertise-addr <Manager节点IP> # docker swarm init --advertise-addr 192.168.1.100 这会将当前节点初始化为Swarm集群的管理节点&…...
硬盘加密安全
硬盘加密性能需求核心指标与优化策略 1. 核心性能指标 读写速度影响: 硬盘加密需平衡安全性与数据吞吐效率。以BitLocker为例,其对4K随机写入性能的影响最高可达45%2,但在现代CPU(支持AES-NI指令集)下…...
推荐系统(二十二):基于MaskNet和WideDeep的商品推荐CTR模型实现
在上一篇文章《推荐系统(二十一):基于MaskNet的商品推荐CTR模型实现》中,笔者基于 MaskNet 构建了一个简单的模型。笔者所经历的工业级实践证明,将 MaskNet 和 Wide&Deep 结合应用,可以取得不错的效果&…...
Ubuntu挂载HDD迁移存储PostgreSQL数据
关联博客:windows通用网线连接ubuntu实现ssh登录、桌面控制、文件共享 背景: 在个人ubuntu机器上安装了pgsql,新建了一张表插入了2000w数据用于模拟大批量数据分页查询用,但是发现查询也不慢(在公司测试环境查询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 ##################################################################…...
LaTeX、KaTeX、Markdown 的用法
文章目录 1. LaTeX 用法概述1.1 LaTeX简介1.2 优点与应用场景2. LaTeX 基础语法2.1 文档结构2.2 文本格式化2.3 数学公式3. KaTeX 用法3.1 KaTeX简介3.2 基本使用方法3.2.1 引入KaTeX3.2.2 渲染数学公式3.2.3 自定义配置3.3 与LaTeX的兼容性4. Markdown 用法4.1 Markdown简介4.…...
Git 教程:从 0 到 1 全面指南 教程【全文三万字保姆级详细讲解】
目录 什么是 Git ? Git 与 SVN 区别 Git 安装配置 Linux 平台上安装 Centos/RedHat 源码安装 Windows 平台上安装 使用 winget 工具 Mac 平台上安装 Git 配置 用户信息 文本编辑器 差异分析工具 查看配置信息 生成 SSH 密钥(可选…...
事件类型——常见的键盘事件及应用
事件类型——常见的键盘事件及应用 键盘事件是前端交互的重要组成部分,通过 keydown 和 keyup 可以精准监听用户的按键行为,结合 key 和 code 属性实现多样化的逻辑。在实际开发中,需根据场景选择合适的事件和属性,并注意兼容性和…...
【 <二> 丹方改良: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,得新建个upload文件夹 2,路由设置严格区分大小写。 biiego文件下载上传代码 github 觉得不错Star下...
2025-04-05 吴恩达机器学习5——逻辑回归(2):过拟合与正则化
文章目录 1 过拟合1.1 过拟合问题1.2 解决过拟合 2 正则化2.1 正则化代价函数2.2 线性回归的正则化2.3 逻辑回归的正则化 1 过拟合 1.1 过拟合问题 欠拟合(Underfitting) 模型过于简单,无法捕捉数据中的模式,导致训练误差和测试误…...
基于Python的图书借阅推荐系统设计与实现
【Python】基于Python的图书借阅推荐系统设计与实现 (完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 本项目基于Python语言和Django框架开发,旨在为用户提供一个高可靠、高便捷的图…...
数字与数学——常见面试算法题
目录 数字统计问题 符号统计 阶乘0的个数 溢出问题 整数反转 回文数 进制问题 七进制数 进制转换 数组实现加法 数组实现整数加法 字符串实现加法 二进制加法 幂运算 求2的幂 求3的幂 求4的幂 辗转相除法(之前博客有过详细推导) https…...
Lua:第1-4部分 语言基础
1 Lua语言入门 1.1 程序段 我们将 Lua 语言执行的每一段代码(例如,一个文件或交互模式下的一行)称为一个程序段 ( Chunk ) ,即一组命令或表达式组成的序列 。 1.2 一些词法规范 Lua 语言中的标识符&#…...
