奋斗
努力

在腾讯云轻量应用服务器上部署PostgreSQL的步骤是什么?

云计算

在腾讯云轻量应用服务器(Lighthouse)上部署 PostgreSQL,通常有几种方式。最推荐的是使用腾讯云官方提供的“数据库镜像”或“WordPress/LAMP等应用镜像”中自带的 PostgreSQL 服务,或者通过Linux 系统手动安装。

以下是两种主流方法的详细步骤:


方法一:使用腾讯云官方应用镜像(推荐新手)

这是最简单、最稳定的方式,适合快速搭建网站或应用后端。

1. 创建实例时选择镜像

  • 登录腾讯云控制台,进入【轻量应用服务器】页面。
  • 点击【创建实例】。
  • 在【镜像】选择步骤中,切换到【应用镜像】标签页。
  • 搜索并选择包含 PostgreSQL 的镜像,例如:
    • WordPress + LAMP/LEMP(通常包含 MySQL/MariaDB,但部分镜像也提供 PostgreSQL 选项)
    • Node.js / Python / Java 开发环境镜像(许多开发镜像默认预装 PostgreSQL)
    • 如果找不到特定 PostgreSQL 镜像,建议选择Ubuntu 20.04/22.04 LTS 或 CentOS 7/8/9 系统镜像,然后手动安装(见方法二)。

⚠️ 注意:目前腾讯云轻量应用服务器更常见的是提供 WordPress+MySQL 镜像。如果你需要纯 PostgreSQL,建议使用方法二手动安装,或使用腾讯云的云数据库 PostgreSQL(CDB)产品(托管服务,无需自己维护)。


方法二:在 Linux 系统上手动安装 PostgreSQL(通用方法)

适用于已创建好的 Ubuntu/CentOS 系统。以下以 Ubuntu 22.04 为例(CentOS 类似,只是包管理器不同)。

步骤 1:更新系统并安装 PostgreSQL

# 更新软件包列表
sudo apt update && sudo apt upgrade -y

# 安装 PostgreSQL 和 contrib 工具包(提供额外功能)
sudo apt install postgresql postgresql-contrib -y

步骤 2:启动并设置开机自启

# 启动 PostgreSQL 服务
sudo systemctl start postgresql

# 设置开机自启
sudo systemctl enable postgresql

# 检查状态
sudo systemctl status postgresql

步骤 3:配置远程访问(关键步骤)

默认情况下,PostgreSQL 只允许本地连接。要允许外部 IP 访问,需修改两个配置文件。

1. 修改 postgresql.conf 监听地址
sudo nano /etc/postgresql/14/main/postgresql.conf

找到以下行(可能注释掉):

#listen_addresses = 'localhost'

改为:

listen_addresses = '*'
2. 修改 pg_hba.conf 允许认证
sudo nano /etc/postgresql/14/main/pg_hba.conf

在文件末尾添加一行,允许所有 IP 或通过密码认证连接(根据安全需求调整):

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             0.0.0.0/0               md5

🔒 安全建议:生产环境中,建议将 0.0.0.0/0 替换为具体的客户端 IP 段,如 192.168.1.0/24,并使用 md5 或 scram-sha-256 认证方式。

3. 重启 PostgreSQL 使配置生效
sudo systemctl restart postgresql

步骤 4:设置 PostgreSQL 用户密码

默认用户是 postgres,需要设置密码:

# 切换到 postgres 用户
sudo -i -u postgres

# 进入 psql 命令行
psql

# 在 psql 中执行(替换 'your_password' 为你的强密码)
ALTER USER postgres WITH PASSWORD 'your_password';

# 退出 psql
q

# 退出 postgres 用户
exit

步骤 5:开放防火墙端口

腾讯云轻量应用服务器有内置防火墙,需在控制台开放 5432 端口。

  1. 登录腾讯云控制台 → 【轻量应用服务器】→ 选择你的实例。
  2. 点击左侧【防火墙】标签。
  3. 点击【添加规则】:
    • 方向:入方向
    • 协议:TCP
    • 端口:5432
    • 授权对象:0.0.0.0/0(或指定 IP)
    • 策略:允许

✅ 同时确保云服务器内部防火墙(如 ufw 或 firewalld)也开放了 5432 端口:

# Ubuntu (ufw)
sudo ufw allow 5432/tcp

# CentOS (firewalld)
sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload

步骤 6:测试连接

从你的本地机器或其他服务器使用客户端工具(如 DBeaver、pgAdmin、Navicat 或命令行)连接:

psql -h <你的服务器公网IP> -U postgres -p 5432

输入之前设置的密码即可成功连接。


方法三:使用 Docker 部署(高级用户推荐)

如果你熟悉 Docker,这种方式隔离性好、易于管理。

1. 安装 Docker

sudo apt update
sudo apt install docker.io docker-compose -y
sudo systemctl enable --now docker

2. 运行 PostgreSQL 容器

docker run -d 
  --name postgres-db 
  -e POSTGRES_PASSWORD=your_secure_password 
  -e POSTGRES_USER=postgres 
  -p 5432:5432 
  postgres:latest

3. 开放防火墙端口

同上,在腾讯云控制台开放 5432 端口。

4. 验证

psql -h <服务器公网IP> -U postgres -p 5432

安全最佳实践

  1. 禁用密码登录,改用密钥认证(SSH 密钥 + PostgreSQL SCRAM-SHA-256)。
  2. 限制访问 IP:在 pg_hba.conf 中只允许可信 IP 连接。
  3. 定期备份:使用 pg_dump 定时备份数据库到对象存储 COS。
  4. 启用 SSL:在生产环境中启用 PostgreSQL 的 SSL 连接加密。
  5. 最小权限原则:不要直接用 postgres 超级用户连接应用,创建专用数据库用户并赋予最小必要权限。

常见问题排查

问题 可能原因 解决方案
连接超时 防火墙未开放 5432 端口 检查腾讯云控制台防火墙和系统内部防火墙
拒绝连接 pg_hba.conf 未配置 添加 host all all 0.0.0.0/0 md5 并重启服务
认证失败 密码错误或用户不存在 确认密码,检查 ALTER USER 是否执行成功
服务未启动 PostgreSQL 进程崩溃 查看日志:sudo journalctl -u postgresql -f

✅ 总结:

  • 新手推荐使用 Docker 部署 或 手动安装 + 严格防火墙配置。
  • 生产环境强烈建议使用 腾讯云云数据库 PostgreSQL(CDB),享受自动备份、高可用和专业运维支持。
未经允许不得转载:云服务器 » 在腾讯云轻量应用服务器上部署PostgreSQL的步骤是什么?