腾讯轻量应用服务器(Tencent Cloud Lighthouse)完全支持安装 PostgreSQL。
实际上,这是非常标准的 Linux 服务器应用场景。由于轻量服务器底层通常是 CentOS、Debian 或 Ubuntu 等主流操作系统,只要操作系统内核兼容,PostgreSQL 就能稳定运行。
以下以最常见的 CentOS 7/8 和 Ubuntu 20.04/22.04 为例,提供详细、可操作的安装与配置步骤。
一、前置准备
- 登录服务器
使用 SSH 工具(如 PuTTY、Xshell、Terminal)连接你的轻量服务器。 -
更新系统包
# CentOS sudo yum update -y # Ubuntu/Debian sudo apt update && sudo apt upgrade -y
二、安装 PostgreSQL
场景 A:CentOS 7 / 8 / Rocky Linux / AlmaLinux
CentOS 默认仓库中的 PostgreSQL 版本可能较旧(如 PG 9.x),建议添加官方 YUM 源获取最新版本(推荐 PG 13+)。
# 1. 安装 EPEL 和 PostgreSQL 官方源
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 2. 禁用默认的 PostgreSQL 模块(避免冲突)
sudo yum module disable postgresql -y
# 3. 安装 PostgreSQL 服务端和客户端(以 PG 15 为例,可按需改为 13, 14, 15, 16)
sudo yum install -y postgresql15-server postgresql15-contrib
# 4. 初始化数据库集群(注意路径可能因版本略有不同)
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
# 5. 启动并设置开机自启
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
✅ 验证安装:
psql --version
场景 B:Ubuntu 20.04 / 22.04
Ubuntu 默认仓库中包含较新的 PostgreSQL 版本,可直接安装。
# 1. 安装 PostgreSQL 和 contrib 扩展
sudo apt install -y postgresql postgresql-contrib
# 2. 启动服务
sudo systemctl start postgresql
# 3. 设置开机自启
sudo systemctl enable postgresql
✅ 验证安装:
psql --version
三、基础配置与安全加固
1. 修改 PostgreSQL 管理员密码
默认用户是 postgres,首次登录后需设置密码。
# 切换到 postgres 用户
sudo su - postgres
# 进入 psql 控制台
psql
# 在 psql 中执行(替换 'your_new_password' 为强密码)
ALTER USER postgres WITH PASSWORD 'your_new_password';
# 退出 psql
q
# 退出 postgres 用户
exit
2. 允许远程访问(关键步骤)
轻量服务器默认只监听本地 127.0.0.1,若需从外部(如本地电脑、其他云服务器)连接,需修改配置文件。
(1)编辑 postgresql.conf
# CentOS
sudo vi /var/lib/pgsql/15/data/postgresql.conf
# Ubuntu
sudo vi /etc/postgresql/14/main/postgresql.conf # 版本号可能不同
找到 listen_addresses,取消注释并改为:
listen_addresses = '*'
(2)编辑 pg_hba.conf 配置访问权限
# CentOS
sudo vi /var/lib/pgsql/15/data/pg_hba.conf
# Ubuntu
sudo vi /etc/postgresql/14/main/pg_hba.conf
在文件末尾添加一行,允许特定 IP 或所有 IP 访问(生产环境建议限制 IP):
# TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 md5
⚠️ 安全提示:
0.0.0.0/0表示允许任意 IP 连接,密码认证方式为md5。若担心安全,可将0.0.0.0/0替换为你的固定公网 IP,例如123.45.67.89/32。
(3)重启服务使配置生效
# CentOS
sudo systemctl restart postgresql-15
# Ubuntu
sudo systemctl restart postgresql
四、防火墙与腾讯云轻量服务器安全组配置
这是最容易忽略的一步!即使 PostgreSQL 已监听 *,如果腾讯云控制台的安全组未放行端口,外部仍无法连接。
- 登录 腾讯云控制台
- 进入 轻量应用服务器 → 选择你的实例 → 防火墙
- 添加规则:
- 协议类型:TCP
- 端口范围:
5432 - 授权对象:
0.0.0.0/0(或指定 IP) - 策略:允许
五、测试连接
从你的本地电脑或其他服务器使用 PostgreSQL 客户端连接测试:
psql -h <你的轻量服务器公网IP> -U postgres -d postgres -p 5432
输入之前设置的密码,若能成功进入 postgres=# 提示符,则安装配置成功。
六、替代方案:直接使用腾讯云云数据库 PostgreSQL
如果你不是出于学习目的,而是用于生产环境,强烈建议直接使用腾讯云托管版云数据库 PostgreSQL(CDB for PostgreSQL),原因如下:
| 对比项 | 自建 PostgreSQL(轻量服务器) | 腾讯云托管 PostgreSQL |
|---|---|---|
| 运维成本 | 高(需自行备份、监控、升级、调优) | 低(自动备份、补丁、监控) |
| 可用性 | 单点故障风险(除非自己搭建主从) | 高可用架构可选 |
| 性能 | 受限于轻量服务器配置 | 高性能实例,弹性扩容 |
| 安全性 | 需自行配置防火墙、加密、审计 | 内置 VPC 隔离、SSL 加密、白名单 |
| 价格 | 服务器费用 + 时间成本 | 按量/包月付费,无额外运维人力 |
💡 对于大多数企业用户,尤其是中小团队,托管版更省心、更安全、长期综合成本更低。
常见问题排查
-
连接被拒绝?
- 检查腾讯云安全组是否放行 5432 端口。
- 检查
pg_hba.conf是否允许该 IP 访问。 - 检查
postgresql.conf中listen_addresses是否为'*'。
-
忘记密码怎么办?
- 编辑
pg_hba.conf,将对应行的md5改为trust,重启服务后无密码登录,再重新设置密码。
- 编辑
-
中文乱码?
- 创建数据库时指定编码:
CREATE DATABASE mydb ENCODING 'UTF8' LC_COLLATE 'zh_CN.UTF-8' LC_CTYPE 'zh_CN.UTF-8';
- 创建数据库时指定编码:
如需进一步优化性能(如共享内存、连接池、索引优化),可继续深入调整 postgresql.conf 参数。如有具体报错信息,可提供日志进一步分析。
CLOUD云枢