在轻量服务器上如何自行部署PostgreSQL数据库?

在轻量服务器(如腾讯云轻量应用服务器、阿里云轻量服务器或类似的VPS)上自行部署 PostgreSQL 数据库是一个常见且实用的操作。以下是详细的步骤指南,适用于基于 Ubuntu/Debian 系统的轻量服务器。


✅ 一、准备工作

  1. 登录服务器
    使用 SSH 登录你的轻量服务器:

    ssh root@your_server_ip
  2. 更新系统包

    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 配置),可继续深入配置。

需要我帮你写一个自动化部署脚本吗?

未经允许不得转载:云计算导航 » 在轻量服务器上如何自行部署PostgreSQL数据库?