返回博客
一月 27, 2026指南

如何在 Linux 服务器上安装 PostgreSQL

关于在 Ubuntu 和 CentOS 上安装、配置和保护 PostgreSQL 数据库服务器的完整指南。

如何在 Linux 服务器上安装 PostgreSQL

PostgreSQL 是一个强大的开源关系数据库管理系统,以其可靠性、功能丰富性和标准合规性而闻名。本指南将帮助您在 Hiddence Linux 服务器上安装和配置 PostgreSQL。

在 Ubuntu/Debian 上安装 PostgreSQL

PostgreSQL 在默认存储库中可用。安装最新版本:

bash
sudo apt update
sudo apt install postgresql postgresql-contrib -y

# 启动并启用 PostgreSQL
sudo systemctl start postgresql
sudo systemctl enable postgresql

# 验证安装
sudo systemctl status postgresql
psql --version

在 RHEL / CentOS / AlmaLinux / Rocky Linux 上安装 PostgreSQL

对于基于 RHEL 的发行版,您需要先添加 PostgreSQL 存储库:

bash
# 安装 PostgreSQL 存储库
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 对于 CentOS 8/Rocky Linux 8,使用:
# sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 安装 PostgreSQL
sudo dnf install -y postgresql15-server postgresql15

# 初始化数据库
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

# 启动并启用 PostgreSQL
sudo systemctl start postgresql-15
sudo systemctl enable postgresql-15

# 验证安装
sudo systemctl status postgresql-15
psql --version

验证安装

bash
# 检查 PostgreSQL 状态
sudo systemctl status postgresql

# 检查 PostgreSQL 版本
psql --version

# 连接到 PostgreSQL (Ubuntu/Debian)
sudo -u postgres psql

# 连接到 PostgreSQL (CentOS/RHEL)
sudo -u postgres psql -d postgres

保护 PostgreSQL

为 postgres 用户设置密码:

bash
# 连接到 PostgreSQL
sudo -u postgres psql

# 为 postgres 用户设置密码
ALTER USER postgres PASSWORD '您的强密码';

# 退出 PostgreSQL
\q

创建数据库和用户

bash
# 以 postgres 用户身份连接
sudo -u postgres psql

# 创建数据库
CREATE DATABASE myapp_db;

# 创建用户
CREATE USER app_user WITH PASSWORD '强密码';

# 授予权限
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO app_user;

# 退出
\q

管理用户

bash
# 连接到 PostgreSQL
sudo -u postgres psql

# 列出所有用户
\du

# 创建新用户
CREATE USER newuser WITH PASSWORD '密码';

# 授予权限
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO newuser;

# 撤销权限
REVOKE ALL PRIVILEGES ON DATABASE myapp_db FROM newuser;

# 删除用户
DROP USER newuser;

启用远程连接

要允许远程连接,请编辑 PostgreSQL 配置文件:

bash
# 编辑 pg_hba.conf (Ubuntu/Debian)
sudo nano /etc/postgresql/15/main/pg_hba.conf

# 编辑 pg_hba.conf (CentOS/RHEL)
sudo nano /var/lib/pgsql/15/data/pg_hba.conf

# 添加行:
host    all             all             0.0.0.0/0               md5

# 编辑 postgresql.conf (Ubuntu/Debian)
sudo nano /etc/postgresql/15/main/postgresql.conf

# 编辑 postgresql.conf (CentOS/RHEL)
sudo nano /var/lib/pgsql/15/data/postgresql.conf

# 更改:
listen_addresses = '*'

# 重启 PostgreSQL
sudo systemctl restart postgresql

基本 PostgreSQL 命令

bash
# 连接到数据库
psql -U app_user -d myapp_db

# 列出数据库
\l

# 连接到数据库
\c database_name

# 列出表
\dt

# 描述表
\d table_name

# 执行 SQL 文件
psql -U app_user -d myapp_db -f script.sql

# 备份数据库
pg_dump -U app_user myapp_db > backup.sql

# 恢复数据库
psql -U app_user -d myapp_db < backup.sql

有用提示

  • 始终为数据库用户使用强密码
  • 在 pg_hba.conf 中将远程访问限制为特定 IP 地址
  • 定期使用 pg_dump 备份您的数据库
  • 监控 PostgreSQL 日志:/var/log/postgresql/ (Ubuntu) 或 /var/lib/pgsql/15/data/log/ (CentOS)
  • 对高流量应用程序使用连接池 (pgBouncer)
  • 保持 PostgreSQL 更新到最新稳定版本以获得安全补丁