如何在阿里云轻量应用服务器上安装和配置PostgreSQL?

在阿里云轻量应用服务器(Lightweight Application Server)上安装和配置 PostgreSQL,推荐使用官方提供的 一键部署模板手动安装 + 安全加固。以下是详细步骤:


✅ 方法一:使用阿里云控制台“一键部署”(推荐新手)

步骤:

  1. 登录 阿里云控制台
  2. 进入「轻量应用服务器」→ 选择你的实例 → 点击 「重装系统」「创建新实例」
  3. 在镜像选择页面,搜索 “PostgreSQL”,会看到类似:
    • Alibaba Cloud Linux 3 (64-bit) + PostgreSQL 15
    • Ubuntu 22.04 + PostgreSQL 14/15
  4. 选择含 PostgreSQL 的镜像 → 完成创建
  5. 等待实例启动后,通过 远程连接工具(如 SSH、阿里云终端)登录

✅ 优点:开箱即用,已预装依赖、基础配置、防火墙规则
⚠️ 注意:默认密码需查看控制台“重置密码”或日志中生成的初始密码(部分镜像会在 /root/.bash_history/var/log/postgresql.log 中提示)


✅ 方法二:手动安装 PostgreSQL(适合自定义需求)

以下以 Alibaba Cloud Linux 3 / CentOS Stream 9 为例(Ubuntu 命令略有不同,文末附对比)。

1. 更新系统并安装依赖

sudo dnf update -y
sudo dnf install -y yum-utils

2. 添加 PostgreSQL 官方 YUM 源(以 PG 15 为例)

# 下载并导入 GPG 密钥
curl -fsSL https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm | sudo rpm -ivh

# 禁用默认 repo,启用 pgdg 源
sudo dnf config-manager --set-disabled pgdg-common
sudo dnf config-manager --set-enabled pgdg15

🔍 版本说明:

  • pgdg15 → PostgreSQL 15
  • pgdg14 → PostgreSQL 14
  • 可访问 https://www.postgresql.org/download/linux/redhat/ 确认最新源

3. 安装 PostgreSQL 及扩展

sudo dnf install -y postgresql-server postgresql-contrib

4. 初始化数据库集群

sudo /usr/pgsql-15/bin/postgresql-setup initdb

📌 路径可能因版本而异:/usr/pgsql-XX/bin/,可用 ls /usr/pgsql* 确认。

5. 启动并设置开机自启

sudo systemctl enable --now postgresql-15
sudo systemctl status postgresql-15

6. 配置远程访问(关键!)

(1)修改 postgresql.conf

sudo vi /var/lib/pgsql/15/data/postgresql.conf

找到并修改:

listen_addresses = '*'          # 允许监听所有 IP
port = 5432                     # 默认端口

(2)修改 pg_hba.conf 允许远程连接

sudo vi /var/lib/pgsql/15/data/pg_hba.conf

在文件末尾添加(根据安全需求调整):

# IPv4 local connections:
host    all             all             0.0.0.0/0               md5
# 或更严格:仅允许特定 IP(推荐生产环境)
# host    all             all             <你的公网IP>/32            md5

(3)重启服务生效

sudo systemctl restart postgresql-15

🔐 安全加固建议(必做!)

1. 修改默认密码(postgres 用户)

sudo -u postgres psql
ALTER USER postgres WITH PASSWORD 'your_strong_password';
q

2. 配置阿里云安全组(防火墙)

  • 登录阿里云控制台 → 轻量应用服务器 → 实例详情 → 网络与安全安全组
  • 添加入方向规则:
    • 协议:TCP
    • 端口:5432
    • 授权对象:0.0.0.0/0(测试用)或 仅限你的公网 IP(生产强烈建议)
    • 优先级:高

3. 启用 SSL(可选但推荐)

生成证书并配置 ssl = on,详见官方文档:
👉 https://www.postgresql.org/docs/current/runtime-config-connection.html#RUNTIME-CONFIG-CONNECTION-SSL

4. 定期备份

# 每日自动备份脚本示例(crontab)
echo "0 2 * * * /usr/pgsql-15/bin/pg_dumpall -U postgres > /backup/pg_backup_$(date +%Y%m%d).sql" | crontab -

🐧 Ubuntu 22.04 快速参考(若你用的是 Ubuntu)

# 安装
sudo apt update
sudo apt install postgresql postgresql-contrib

# 启动
sudo systemctl start postgresql
sudo systemctl enable postgresql

# 配置文件路径
/etc/postgresql/14/main/postgresql.conf
/etc/postgresql/14/main/pg_hba.conf

# 修改密码
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'newpass';"

🔍 验证安装是否成功

# 本地连接测试
sudo -u postgres psql -c "l"

# 远程连接测试(从本机)
psql -h <服务器公网IP> -U postgres -p 5432
# 输入密码后应能进入命令行

❗ 常见问题排查

问题 解决方案
Connection refused 检查 listen_addressespg_hba.conf、安全组规则
password authentication failed 确认 md5/scram-sha-256 与客户端认证方式匹配;检查 .pgpass 文件权限
磁盘空间不足 df -h 查看 /var/lib/pgsql;清理旧日志或迁移数据目录
无法写入日志 检查 /var/lib/pgsql/15/data/log 权限:chown -R postgres:postgres log

需要我为你提供:

  • 自动化部署 Shell 脚本?
  • Docker 方式部署 PostgreSQL?
  • 配合 phpMyAdmin/pgAdmin 可视化管理?
  • 高可用架构(主从复制)方案?

欢迎告诉我你的具体场景,我可以进一步定制方案 😊