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

localhost 修改为:

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

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐