是的,腾讯云轻量应用服务器(Tencent Cloud Lighthouse)完全支持自建 PostgreSQL。
轻量应用服务器本质上是一台精简版的云服务器(CVM),拥有完整的 Linux 操作系统权限。你可以像在普通 CVM 上一样,通过命令行安装、配置和管理任何开源数据库软件,包括 PostgreSQL。
以下是基于 Ubuntu/Debian 和 CentOS/Rocky Linux 两种主流系统的详细配置指南:
第一步:登录并更新系统
首先通过 SSH 登录到你的轻量服务器。无论使用哪种系统,建议先更新软件源以确保安全补丁最新。
- Ubuntu/Debian:
sudo apt update && sudo apt upgrade -y - CentOS/Rocky Linux:
sudo yum update -y
第二步:安装 PostgreSQL
方案 A:使用 Ubuntu/Debian 官方仓库(推荐)
这是最简单的方式,通常能直接安装到较新的稳定版本。
-
导入 GPG 密钥并添加仓库:
# 以安装 PostgreSQL 15 为例,如需其他版本请修改版本号 sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt update -
安装 PostgreSQL:
sudo apt install postgresql postgresql-contrib -y -
启动服务并设置开机自启:
sudo systemctl start postgresql sudo systemctl enable postgresql
方案 B:使用 CentOS/Rocky Linux (YUM/DNF)
CentOS 默认源中的 PostgreSQL 版本可能较旧,建议使用官方 PGDG 仓库。
-
安装 PGDG 仓库:
sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm -
安装指定版本(例如 PostgreSQL 15):
sudo dnf install postgresql15-server -y -
初始化数据库并启动:
# 初始化数据库集群 sudo /usr/pgsql-15/bin/postgresql-15-setup initdb # 启动服务 sudo systemctl start postgresql-15 sudo systemctl enable postgresql-15
第三步:配置远程访问与防火墙
默认情况下,PostgreSQL 只允许本地连接。若需从外部(如你的本地电脑或另一台服务器)连接,需要进行以下配置:
1. 修改监听地址 (postgresql.conf)
编辑配置文件,将 listen_addresses 改为 '*'(允许所有 IP)或具体的内网 IP。
- Ubuntu/Debian:
/etc/postgresql/<version>/main/postgresql.conf - CentOS:
/var/lib/pgsql/15/data/postgresql.conf(路径可能略有不同,可用find查找)
# 找到这一行并取消注释,修改为
listen_addresses = '*'
2. 修改认证方式 (pg_hba.conf)
编辑此文件以允许特定 IP 或网段连接。
- Ubuntu/Debian:
/etc/postgresql/<version>/main/pg_hba.conf - CentOS:
/var/lib/pgsql/15/data/pg_hba.conf
在文件末尾添加一行(允许来自任意 IP 的连接,生产环境建议替换 0.0.0.0/0 为具体 IP 段):
# TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 md5
(注:md5 表示密码验证。若使用更安全的 scram-sha-256 也可)
3. 重启 PostgreSQL 服务
使配置生效:
sudo systemctl restart postgresql
# 或 CentOS
sudo systemctl restart postgresql-15
4. 配置腾讯云轻量防火墙
这是最关键的一步。轻量服务器的控制台自带“防火墙”功能,必须放行数据库端口(默认 5432)。
- 登录 腾讯云控制台。
- 进入 轻量应用服务器 页面。
- 点击你的实例名称,进入详情页。
- 找到 “防火墙” 选项卡(注意:不是云防火墙,是轻量自带的简易防火墙)。
- 点击 “添加入方向规则”:
- 协议类型: TCP
- 端口范围: 5432
- 授权对象:
0.0.0.0/0(允许所有 IP,生产环境建议仅填写你固定的公网 IP) - 策略: 允许
- 保存后,防火墙规则即刻生效。
第四步:创建用户与测试连接
1. 切换到 postgres 用户并修改密码
sudo -i -u postgres
psql
ALTER USER postgres WITH PASSWORD '你的强密码';
q
exit
2. 本地测试连接
在服务器上测试是否成功:
psql -U postgres -h localhost -W
如果输入密码后进入 postgres=# 提示符,说明本地正常。
3. 远程连接测试
在你的本地电脑(Windows/Mac/Linux)上使用客户端工具(如 DBeaver, pgAdmin, Navicat 或命令行 psql)进行连接:
- 主机 IP: 你的轻量服务器公网 IP
- 端口: 5432
- 用户名: postgres
- 密码: 刚才设置的密码
💡 重要安全与维护建议
- 限制 IP 访问:在生产环境中,切勿将
pg_hba.conf中的ADDRESS设置为0.0.0.0/0,除非你有特殊的白名单需求。最好只允许特定的业务服务器 IP 或你自己的办公 IP 访问。 - 数据备份:轻量服务器磁盘空间有限且容易误操作。务必定期使用
pg_dump将数据导出到对象存储(COS)或其他备份位置。pg_dump -U postgres my_database > backup.sql - 内存优化:PostgreSQL 比较吃内存。轻量服务器如果是低配版(如 2GB 内存),建议在
postgresql.conf中适当调小shared_buffers和work_mem参数,防止 OOM(内存溢出)导致服务崩溃。 - 替代方案考虑:如果你的业务对数据库的高可用性、自动备份、主从切换有极高要求,且不想维护运维工作,可以考虑直接使用腾讯云的 云数据库 PostgreSQL (TencentDB for PG) 托管服务,虽然成本略高,但免去了运维麻烦。
CLOUD技术博