Linux系统安装Postgre和Postgis教程

简介: 本文详细介绍了PostgreSQL/PostGIS的卸载与安装步骤。卸载部分涵盖Docker、Yum/RPM及源码编译安装的清理方法,包括停止服务、删除容器/包、清理残留文件和环境变量等操作,并强调卸载前需备份数据库数据。安装部分提供在线yum安装和离线源码编译两种方式,前者简单快捷,后者需准备依赖(如gcc、readline-devel等)、创建用户组、初始化数据库及配置访问规则。每步均附带命令示例,确保操作清晰明确。

卸载

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

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

一、删除 Docker 安装的 PostgreSQL/PostGIS

1. 停止并删除容器

# 查看所有容器
docker ps -a | grep postgres
# 停止并删除容器(替换为实际容器名或ID)
docker stop <容器名或ID> && docker rm <容器名或ID>

image.gif

2. 删除镜像和数据卷

# 删除镜像
docker images | grep postgres
docker rmi <镜像名或ID>
# 删除数据卷(谨慎操作,会永久删除数据!)
docker volume ls | grep postgres
docker volume rm <卷名>

image.gif

3. 清理残留文件

# 检查 Docker 数据目录
sudo rm -rf /var/lib/docker/volumes/*postgres*

image.gif

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

1. 卸载所有相关包

# 列出所有已安装的 PostgreSQL/PostGIS 包
sudo yum list installed | grep -E 'postgresql|postgis'
# 卸载主包和依赖(示例,实际包名可能不同)
sudo yum remove postgresql13-server postgresql13-contrib postgis30_13

image.gif

2. 删除配置和数据文件

# 删除数据目录(默认路径)
sudo rm -rf /var/lib/pgsql/
# 删除配置文件
sudo rm -rf /etc/postgresql-13/
# 删除日志文件
sudo rm -rf /var/log/postgresql/

image.gif

3. 清理用户和组

sudo userdel -r postgres
sudo groupdel postgres

image.gif

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

1. 停止服务并删除安装目录

# 停止服务(如果已配置服务)
sudo systemctl stop postgresql
sudo rm -f /etc/systemd/system/postgresql.service
# 删除源码安装目录(根据实际路径)
sudo rm -rf /usr/local/pgsql/

image.gif

2. 删除数据目录和日志

sudo rm -rf /usr/local/pgsql/data/
sudo rm -rf /var/log/postgresql/

image.gif

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

image.gif

四、通用清理步骤

1. 检查残留进程

pgrep -a postgres  # 如有残留进程,手动终止
sudo pkill -9 postgres

image.gif

2. 清理临时文件

sudo rm -rf /tmp/.s.PGSQL*

image.gif

3. 刷新动态链接库缓存

sudo ldconfig

image.gif


五、验证是否删除干净

# 检查命令是否存在
which psql          # 应无输出
psql --version      # 应提示未找到命令
# 检查目录残留
ls -l /usr/local/pgsql  # 应提示目录不存在
# 检查用户/组
id postgres         # 应提示用户不存在

image.gif

六、备份提醒

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

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

image.gif

安装

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

# 查看可用的 postgreSQl 版本
yum list available postgre*
# 安装postgre13
yum install postgreSql13 -y
#查看可用postgis版本
yum list available postgis*
#安装postgis30_13
yum install postgis30_13 -y

image.gif

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

二、离线安装postgresql

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

image.gif 编辑

1、安装前的准备

1.1安装依赖

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

image.gif

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

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

image.gif

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

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

image.gif

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

1.1.4 安装libicu共享库
#这个版本是postgre13需要的版本
yum install -y libicu-50.2-4.el7.x86_64 libicu-devel-50.2-4.el7.x86_64

image.gif

1.2 创建postgres用户与用户组

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

image.gif

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

2 开始安装

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

# 使用如下命令解压
tar -zxvf postgresql-14.4.tar.gz 
# 进入解压后的目录
cd postgresql-14.4
#开始安装
./configure 
make
make install

image.gif

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

3.1 创建数据目录

mkdir /usr/pgsql-13/data

image.gif

3.2 创建日志目录

/usr/pgsql-13/log

image.gif

3.3 修改数据、日志目录的所属用户与用户组均为postgres

chown -R postgres:postgres /usr/pgsql-13/data
chown -R postgres:postgres /usr/pgsql-13/log

image.gif

3.4 初始化数据库

1 切换到postgres用户

su postgres

image.gif

2 初始化数据库

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

image.gif

命令解释

/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

image.gif

命令解释

该命令用于启动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

image.gif

3.6.2 修改管理员postgres的密码
ALTER USER postgres WITH PASSWORD 'postgres';

image.gif

3.7 修改配置

3.7.1 设置连接访问规则(修改配置文件pg_hba.conf,在文件末尾添加)

1 进入目录

cd /usr/pgsql-13/data/

image.gif

2 编辑pg_hba.conf文件

vim pg_hba.conf

image.gif

3 在文件末尾添加

host    all             all              0.0.0.0/0              md5

image.gif

在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/

image.gif

2 编辑postgresql.conf文件

vim postgresql.conf

image.gif

修改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

image.gif

3.7.8 测试连接

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

相关文章
|
4月前
|
安全 Linux 开发工具
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
304 3
|
1月前
|
Linux iOS开发 Docker
MyEMS开源系统安装之Linux/macOS上的DOcker
本指南详细介绍了如何在Linux/macOS上使用Docker部署MyEMS系统。主要内容包括:前置条件(如安装Docker、npm和MySQL),以及分步骤部署各个组件(如myems-api、myems-admin、myems-modbus-tcp等)。每个步骤涵盖源代码复制、环境配置、镜像构建、容器运行及日志管理等操作,并提供了多平台构建的支持。最后,指南还说明了默认端口和登录凭据,帮助用户快速启动并访问MyEMS的管理界面和Web界面。
67 1
|
3月前
|
存储 Ubuntu Linux
Linux系统安装对硬件的需求
总的来说,Linux系统对硬件的需求并不高,它可以在很多年代久远的硬件上运行。但是,如果你想得到更好的体验,那么你可能需要更强大的硬件。在选择硬件时,你需要考虑你的使用需求,以及你打算安装的Linux发行版的需求。
149 25
|
1月前
|
Oracle 关系型数据库 Linux
MyEMS开源系统安装之CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux
本指南介绍如何在CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux服务器上部署MyEMS开源能源管理系统。内容涵盖系统准备、数据库配置、多个MyEMS服务(如myems-api、myems-admin、myems-modbus-tcp等)的安装与配置,以及Nginx服务器设置和防火墙规则调整。通过完成所有步骤,您将能够访问MyEMS Admin UI和Web UI,默认端口分别为8001和80,初始登录凭据已提供。
61 0
|
4月前
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
391 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
3月前
|
安全 Java Linux
Linux安装Elasticsearch详细教程
Linux安装Elasticsearch详细教程
324 1
|
5月前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
375 32
|
5月前
|
Unix Linux C语言
【Linux】 Linux makefile 教程
本文详细介绍了 Linux 环境下 Makefile 的基本结构、语法和使用方法,并通过一个简单的 C++ 项目示例演示了 Makefile 的实际应用。Makefile 是一个强大而灵活的工具,通过合理配置,可以极大地简化项目的编译和管理过程,提高开发效率。希望本文能帮助您更好地理解和应用 Makefile,在实际项目中高效管理代码的编译和构建。
163 20
|
5月前
|
Unix Linux C语言
【Linux】 Linux makefile 教程
本文详细介绍了 Linux 环境下 Makefile 的基本结构、语法和使用方法,并通过一个简单的 C++ 项目示例演示了 Makefile 的实际应用。Makefile 是一个强大而灵活的工具,通过合理配置,可以极大地简化项目的编译和管理过程,提高开发效率。希望本文能帮助您更好地理解和应用 Makefile,在实际项目中高效管理代码的编译和构建。
124 16
|
6月前
|
Ubuntu Linux 网络安全
Linux磁盘挂接教程
Linux磁盘挂接教程
133 14