postgresql服务器搭建核心是“装得稳、连得上、管得住”:linux推荐官方仓库安装(ubuntu加apt源、centos用pgdg rpm),windows用官网安装包;必须创建独立应用用户而非直接用postgres;远程连接需同步修改postgresql.conf的listen_addresses和pg_hba.conf访问规则;上线前须防火墙限流、安全组白名单、禁用postgres远程登录并定期升级版本。

PostgreSQL 服务器搭建与配置,核心是“装得稳、连得上、管得住”。不建议直接用默认配置上线,尤其在云环境或生产场景中。下面按实际部署逻辑分步说明,覆盖 Linux(Ubuntu/CentOS)和 Windows 主流平台,重点讲清楚关键动作和容易踩的坑。
选择安装方式:源码、包管理器还是 Docker?
大多数情况下推荐用官方仓库安装(Linux)或官方安装包(Windows),省去编译和依赖问题:
- Ubuntu/Debian:添加 PostgreSQL 官方 APT 源(避免系统自带的老旧版本),再安装指定版本(如 16 或 17)
-
CentOS/RHEL:用 pgdg 官方 RPM 仓库,执行
dnf install postgresql16-server,再初始化数据目录 - Windows:从官网下载带 pgAdmin 的安装包(如 17.5),安装时注意路径不含空格或中文,密码务必记牢
-
Docker 快速验证:适合开发或测试,命令示例:
docker run -d --name pg16 -e POSTGRES_PASSWORD=123456 -p 5432:5432 -v /data/pg16:/var/lib/postgresql/data postgres:16
基础服务启动与用户权限设置
安装后不能直接用 postgres 超级用户写业务代码,必须创建独立应用用户:
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
- 切换到 postgres 系统用户:
sudo -u postgres psql - 创建应用用户并设强密码:
CREATE USER myapp WITH PASSWORD 'A1#secure2026'; - 新建数据库并指定属主:
CREATE DATABASE myapp_db OWNER myapp; - 退出后,用新用户连接测试:
psql -h localhost -U myapp -d myapp_db - 如需只读账号(比如报表查询),再建用户并授予
CONNECT、USAGE和SELECT权限
允许远程连接的关键两步
云服务器或局域网访问必须改两个配置文件,缺一不可:
- 编辑
postgresql.conf(路径通常为/etc/postgresql/*/main/或/var/lib/pgsql/data/),修改:listen_addresses = '0.0.0.0'(或填具体内网 IP)port = 5432(可改为 5433 等非默认端口提升安全性) - 编辑
pg_hba.conf,在末尾添加一行(按需调整网段):host all all 192.168.1.0/24 md5(内网)
或更严格地:host myapp_db myapp 203.123.45.67/32 md5(单 IP 白名单) - 改完重启服务:
sudo systemctl restart postgresql,再检查监听状态:ss -tlnp | grep 5432
安全加固与最小化暴露
上线前这几项不难做,但能大幅降低风险:
- 防火墙放行对应端口(如 Ubuntu 的 ufw:
sudo ufw allow 5433/tcp),同时关闭不必要的端口 - 云服务商安全组规则只放行可信 IP 段,严禁
0.0.0.0/0 - 禁用
postgres用户的远程登录能力(在pg_hba.conf中不为其开放规则) - 定期更新 PostgreSQL 版本,特别是修复 CVE 的小版本(如 16.4 → 16.5)
- 敏感字段(如密码、token)启用 pgcrypto 加密存储,而非明文










