在腾讯云服务器(CVM)上安装 PostgreSQL 是完全可行的,但强烈建议优先使用腾讯云提供的托管服务(云数据库 PostgreSQL),除非你有特殊的自部署需求(如自定义配置、特定版本、网络隔离要求或成本敏感型自建)。
如果你确实需要在 CVM 上自行安装 PostgreSQL,以下是标准操作流程:
✅ 推荐方案:使用官方源安装(Ubuntu/Debian/CentOS)
1. 更新系统包
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian
# 或
sudo yum update -y # CentOS/RHEL
2. 添加 PostgreSQL 官方 YUM/APT 仓库
以 PostgreSQL 15 为例(请根据需求选择版本):
▶ Ubuntu/Debian:
# 导入 GPG 密钥
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# 添加仓库(以 Debian 11 / Ubuntu 20.04 为例)
echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" |
sudo tee /etc/apt/sources.list.d/pgdg.list
# 更新并安装
sudo apt update
sudo apt install postgresql-15 postgresql-contrib-15 -y
▶ CentOS/RHEL 8+:
# 安装 PGDG 仓库
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 切换默认版本(可选,默认是最新版)
sudo dnf config-manager --set-enabled pgdg-15
# 安装
sudo dnf install -y postgresql-server postgresql-contrib
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
3. 启动并设置开机自启
sudo systemctl enable postgresql # Ubuntu/Debian
sudo systemctl start postgresql
# CentOS 需指定路径
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
4. 配置远程访问(关键!)
默认只允许本地连接,需修改以下文件:
-
/etc/postgresql/15/main/postgresql.conf(Ubuntu)
或/var/lib/pgsql/15/data/postgresql.conf(CentOS)listen_addresses = '*' # 监听所有网卡 port = 5432 # 默认端口 -
/etc/postgresql/15/main/pg_hba.conf
添加一行允许远程 IP 或网段(示例:允许整个公网):host all all 0.0.0.0/0 scram-sha-256⚠️ 生产环境请替换
0.0.0.0/0为具体 IP 段,避免暴露给全网。
重启服务生效:
sudo systemctl restart postgresql
5. 设置超级用户密码
sudo -u postgres psql
password postgres
# 输入两次新密码后退出:q
6. 开放安全组端口(腾讯云控制台)
登录 腾讯云控制台 → 实例管理 → 找到你的 CVM → 安全组 → 添加入站规则:
- 协议:TCP
- 端口:
5432 - 来源:按需填写(如
0.0.0.0/0仅用于测试,生产建议限制 IP)
7. 验证连接
从外部机器测试:
psql -h <你的公网IP> -U postgres -d postgres -W
🔒 重要安全建议
| 项目 | 建议 |
|---|---|
| 防火墙 | 除 5432 外,关闭其他非必要端口 |
| 认证方式 | 生产环境启用 scram-sha-256 而非 md5 |
| 备份 | 定期用 pg_dump + 对象存储(COS)做异地备份 |
| 监控 | 开启 CloudMonitor 监控 CPU/内存/磁盘 IO |
| 升级 | 订阅 PG 安全公告,及时打补丁 |
🆚 对比:自建 vs 云数据库(RDS for PostgreSQL)
| 维度 | 自建 CVM + PG | 腾讯云 RDS for PG |
|---|---|---|
| 运维成本 | 高(需手动备份/扩容/HA) | 低(自动备份/主备/弹性伸缩) |
| 可用性 | 依赖自身架构设计 | SLA ≥99.95%(多可用区) |
| 安全性 | 需自行配置防火墙/加密 | 内置 VPC 隔离/SSL/TDE |
| 成本 | 初期低,长期运维成本高 | 按量/包年包月,透明计费 |
| 适用场景 | 学习/测试/特殊定制需求 | 生产环境首选 |
💡 结论:若用于生产,强烈推荐直接使用 云数据库 PostgreSQL;仅在开发、测试或特殊合规需求下才考虑自建。
需要我提供自动化脚本、Docker 部署方案,或 RDS 购买指南吗?
云服务器