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_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.1.4 安装libicu共享库
#这个版本是postgre13需要的版本
yum install -y libicu-50.2-4.el7.x86_64 libicu-devel-50.2-4.el7.x86_64
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 测试连接

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

<think>好的,我现在需要介绍PostgreSQL数据库。首先,我应该确定用户需要的是基本介绍,包括它的特点、用途以及优势。可能用户对数据库不太熟悉,所以需要以简单易懂的语言来解释。 首先,PostgreSQL的名字,要说明它常被简称为Postgre。它是一个开源的关系型数据库,支持SQL查询,这点很重要。然后要提到它的历史,比如起源于1986年的UC Berkeley项目,发展到现在有30多年,说明它的成熟稳定。 接下来,主要特点需要分点列出。比如开源免费,这对很多企业来说很重要。支持复杂查询事务处理,符合ACID特性,强调可靠性。可扩展性方面,用户可以自定义函数、数据类型、操作符,甚至插件,比如PostGIS,这对地理信息处理很关键。多版本并发控制(MVCC)这个技术点需要解释清楚,说明它在高并发下的优势。跨平台支持也是重点,能在各种操作系统上运行。 应用场景部分,需要覆盖常见的用途,比如Web应用、地理信息系统、数据分析大数据,以及复杂业务逻辑的企业应用。这些例子能让用户明白PostgreSQL的适用领域。 优点方面,再次强调开源、功能强大、稳定可靠活跃的社区。特别是社区支持,对于解决问题持续发展很重要。 可能需要对比其他数据库,比如MySQL,但用户没有提到,所以暂时不加。最后,确保语言口语化,避免技术术语堆砌,让用户容易理解。检查是否有遗漏的重要点,比如JSON支持或者全文搜索,这些可以作为高级功能提及。总之,结构要清晰,信息全面但不过于冗长。</think>PostgreSQL(常简称为 **Postgre**)是一款开源、功能强大的**关系型数据库管理系统**(RDBMS),支持复杂的查询、事务处理高并发操作。以下是它的核心介绍: --- ### **核心特点** 1. **开源免费** 遵循BSD许可,可自由使用、修改分发,无版权费用。 2. **高度兼容 SQL 标准** 支持绝大多数 SQL 语法(包括窗口函数、CTE 等),且扩展了 JSON、地理空间等数据类型。 3. **ACID 事务支持** 严格保证数据一致性,适合银行、电商等对事务要求严格的场景。 4. **可扩展性强** - 允许自定义数据类型、函数、操作符。 - 支持通过插件扩展功能(如时序数据库 TimescaleDB、地理信息 PostGIS)。 5. **多版本并发控制(MVCC)** 高效处理高并发读写,避免锁竞争,提升性能。 6. **跨平台与多语言支持** 可在 Linux、Windows、macOS 等系统运行,支持 Python、Java、C/C++ 等编程接口。 --- ### **典型应用场景** - **Web 应用后端**:作为动态网站的数据存储(如 Django、Ruby on Rails 的常用选择)。 - **地理信息系统(GIS)**:通过 PostGIS 插件支持地理数据存储与空间分析。 - **数据分析**:复杂查询聚合能力适合生成报表、OLAP 场景。 - **企业级复杂业务**:支持存储过程、触发器等,满足定制化逻辑需求。 --- ### **优势对比** - **VS MySQL** PostgreSQL 更擅长复杂查询、支持更丰富的特性(如全文搜索、JSON 处理),而 MySQL 在简单读写场景下可能更快。 - **VS 商业数据库(如 Oracle)** 提供类似的功能(如分区表、并行查询),但成本更低,社区支持活跃。 --- ### **快速入门** - 安装:通过官网下载或包管理器(如 `apt-get install postgresql`)。 - 基础命令: ```sql CREATE DATABASE mydb; -- 创建数据库 CREATE TABLE users (id SERIAL PRIMARY KEY, name VARCHAR(50)); -- 创建表 INSERT INTO users (name) VALUES ('Alice'); -- 插入数据 ``` --- **总结**:PostgreSQL 以可靠性、扩展性标准兼容性著称,适合需要处理复杂数据或追求高定制的场景。其活跃的开源社区持续推动功能创新,长期稳居 DB-Engines 排名前五。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HelloWorld_Felix

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值