Linux 安装 PostgreSQL 数据库(最全实操指南)
PostgreSQL(简称 PG)是当前最受欢迎、最稳定的开源关系型数据库之一
适合中大型项目、企业业务、高性能存储需求
📌 目录(CSDN 可点击跳转)
一、什么是 PostgreSQL?为什么选它?
PostgreSQL 是一个功能强大、开源免费的对象关系型数据库(ORDBMS)。
✔ PostgreSQL 的优势
| 优势 | 说明 |
|---|---|
| ACID 事务 | 真正保证数据一致性 |
| 支持复杂 SQL | 子查询、视图、函数、存储过程 |
| 支持 JSON | 与 NoSQL 兼容式处理 |
| 可扩展 | 可自定义类型、索引方法 |
| 社区活跃 | 持续稳定更新 |
这里简单理解:
PostgreSQL 就像是 比 MySQL 更强大的数据库,适用于大型业务系统、高并发场景。
二、安装前准备(系统要求 & 环境检查)
在开始安装前,我们先做一些必要的准备工作。
✔ 1. 确认系统版本
命令:
cat /etc/os-release
确认你是:
-
CentOS/Rocky
-
Ubuntu
-
Debian
不同发行版后续安装命令会有所不同。
✔ 2. 关闭/调整防火墙与 SELinux
为了避免阻止端口访问,可以临时关闭:
systemctl stop firewalld
SELinux 的状态:
getenforce
如果输出是 Enforcing,建议临时关闭用于测试:
setenforce 0
⚠ 正式环境建议调整策略而不是永久关闭。
三、CentOS / Rocky 安装 PostgreSQL
下面我们以 CentOS / Rocky Linux 为例讲解:
① 添加 PostgreSQL 官方仓库
为什么要添加?
因为系统自带的软件源版本通常较老,而 PostgreSQL 官方仓库提供最新版。
参考命令:
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %rhel)-x86_64/pgdg-redhat-repo-latest.noarch.rpm
② 禁用默认 PostgreSQL 模块
如果是 CentOS 8 / Rocky:
dnf -qy module disable postgresql
③ 安装 PostgreSQL 服务
yum install -y postgresql13-server postgresql13
说明:
-
postgresql13-server是服务器核心组件 -
postgresql13是客户端工具
④ 初始化数据库目录
这一步非常重要,是创建数据库目录结构与必要配置的过程。
/usr/pgsql-13/bin/postgresql-13-setup initdb
⑤ 启动数据库服务 & 设置开机启动
systemctl enable postgresql-13
systemctl start postgresql-13
四、Ubuntu / Debian 安装 PostgreSQL
✔ 添加官方仓库
首先添加 PG 官方源:
apt install wget
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
✔ 添加源列表
以 Ubuntu 20.04 为例:
sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
✔ 安装 PostgreSQL
apt update
apt install -y postgresql-13
系统会自动初始化数据库并默认启用服务。
五、初始化数据库 & 配置访问策略
✔ 默认 PostgreSQL 用户
安装完成后会自动创建一个名为:
postgres
的系统用户,它也是 PostgreSQL 的管理员。
✔ 切换到管理员并创建数据库
su - postgres
psql
创建用户并授权:
CREATE USER myuser WITH PASSWORD 'MyP@ssw0rd';
ALTER ROLE myuser CREATEDB;
创建数据库:
CREATE DATABASE mydb OWNER myuser;
✔ 修改远程访问策略
编辑:
vim /var/lib/pgsql/13/data/pg_hba.conf
把 local 和 host 修改为:
host all all 0.0.0.0/0 md5
⚠ 请根据实际安全策略调整!
✔ 修改监听地址
编辑:
vim postgresql.conf
找到:
listen_addresses = 'localhost'
改为:
listen_addresses = '*'
最后重启服务:
systemctl restart postgresql-13
六、常见报错排查与解决
❗ 1. 服务无法启动
检查日志:
journalctl -u postgresql-13
❗ 2. 远程连接失败
检查:
✔ 安全组是否放通 5432 端口
✔ SELinux 是否阻止访问
❗ 3. 密码验证失败
确认:
✔ pg_hba.conf 配置是否正确
✔ 是否执行了 ALTER ROLE ... WITH PASSWORD
七、运维优化建议 & 备份策略
📌 自动备份(简单脚本示例)
写一个每日备份脚本:
#!/bin/bash
DATE=$(date +%F)
pg_dumpall -U postgres > /data/backup/pg_backup_$DATE.sql
配合 crontab:
0 2 * * * /root/pg_backup.sh
更多推荐

所有评论(0)