在轻量服务器(如腾讯云轻量应用服务器、阿里云轻量服务器或类似的VPS)上自行部署 PostgreSQL 数据库是一个常见且实用的操作。以下是详细的步骤指南,适用于基于 Ubuntu/Debian 系统的轻量服务器。
✅ 一、准备工作
-
登录服务器
使用 SSH 登录你的轻量服务器:ssh root@your_server_ip -
更新系统包
sudo apt update && sudo apt upgrade -y
✅ 二、安装 PostgreSQL
1. 安装 PostgreSQL(以 Ubuntu 20.04/22.04 为例)
sudo apt install postgresql postgresql-contrib -y
postgresql-contrib包含一些有用的扩展工具。
2. 启动并设置开机自启
sudo systemctl start postgresql
sudo systemctl enable postgresql
检查状态:
sudo systemctl status postgresql
✅ 三、配置 PostgreSQL
1. 切换到 postgres 用户
PostgreSQL 默认创建了一个名为 postgres 的系统用户和数据库用户。
sudo -i -u postgres
2. 进入 PostgreSQL 命令行
psql
3. 设置 postgres 用户密码(可选但推荐)
password postgres
输入并确认新密码。
4. 创建新数据库和用户(推荐做法)
CREATE DATABASE myappdb;
CREATE USER myuser WITH ENCRYPTED PASSWORD 'mypass123';
5. 授予权限
GRANT ALL PRIVILEGES ON DATABASE myappdb TO myuser;
退出 psql:
q
返回原始用户:
exit
✅ 四、配置远程访问(如需从外部连接)
⚠️ 注意:开放远程访问会带来安全风险,请确保使用强密码和防火墙限制。
1. 修改 postgresql.conf
sudo nano /etc/postgresql/*/main/postgresql.conf
找到以下行并修改:
listen_addresses = 'localhost'
改为:
listen_addresses = '*'
(或指定 IP,如 'localhost,192.168.1.100')
*号表示监听所有接口。
2. 配置客户端认证(pg_hba.conf)
sudo nano /etc/postgresql/*/main/pg_hba.conf
在文件末尾添加允许远程连接的规则,例如:
# 允许来自 192.168.1.0/24 的 IPv4 连接
host all all 192.168.1.0/24 md5
# 允许特定 IP(如你的本地电脑)
host all all your_local_ip/32 md5
# 示例:允许任意 IP(仅测试用,不推荐生产环境)
# host all all 0.0.0.0/0 md5
建议尽量限制 IP 范围。
3. 重启 PostgreSQL 生效
sudo systemctl restart postgresql
✅ 五、配置防火墙(UFW 或云平台安全组)
1. 开放 PostgreSQL 默认端口 5432
sudo ufw allow 5432/tcp
2. 检查 UFW 状态
sudo ufw status
⚠️ 更重要的是,在云控制台(如腾讯云、阿里云)中配置安全组规则,放行 5432 端口的入站流量。
✅ 六、测试连接
1. 本地测试
psql -d myappdb -U myuser -h localhost -W
2. 外部连接测试(使用 pgAdmin、DBeaver 或命令行)
psql -h your_server_ip -p 5432 -U myuser -d myappdb -W
✅ 七、安全建议
- ❌ 不要使用默认的
postgres用户进行远程连接。 - ✅ 使用强密码。
- ✅ 限制远程访问的 IP 地址。
- ✅ 定期备份数据库(使用
pg_dump)。 - ✅ 考虑启用 SSL 加密连接(进阶)。
✅ 八、常用命令速查
| 功能 | 命令 |
|---|---|
| 启动 PostgreSQL | sudo systemctl start postgresql |
| 重启服务 | sudo systemctl restart postgresql |
| 查看状态 | sudo systemctl status postgresql |
| 备份数据库 | pg_dump -U myuser -h localhost myappdb > backup.sql |
| 恢复数据库 | psql -U myuser -d myappdb < backup.sql |
✅ 总结
你已经成功在轻量服务器上部署了 PostgreSQL,并可根据需要开启远程访问。对于轻量服务器资源有限的情况,PostgreSQL 的默认配置通常足够应付中小型应用。
如有进一步需求(如性能优化、主从复制、SSL 配置),可继续深入配置。
需要我帮你写一个自动化部署脚本吗?
云计算导航