奋斗
努力

阿里云服务器ecs安装postgresql?

云计算

在阿里云 ECS 服务器上安装 PostgreSQL 有多种方式,具体取决于你的操作系统(CentOS、Ubuntu、Debian 等)以及你对版本控制和运维复杂度的要求。

以下是针对主流 Linux发行版的详细安装指南,以及推荐的最佳实践。


✅ 推荐方案:使用官方 YUM/APT 仓库安装

这种方式能确保你获得的是最新稳定版,并且可以通过包管理器轻松升级和管理服务。

1. CentOS / RHEL / Alibaba Cloud Linux

Alibaba Cloud Linux 基于 CentOS/RHEL,步骤如下:

# 1. 安装 PostgreSQL 官方 yum 仓库配置
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 2. 禁用默认的 postgresql 模块(避免冲突)
sudo dnf module disable -y postgresql

# 3. 安装 PostgreSQL 服务端和客户端
# 将 15 替换为你需要的版本(如 14, 13, 12)
sudo yum install -y postgresql15-server postgresql15-contrib

# 4. 初始化数据库并启动服务
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl enable --now postgresql-15

# 5. 检查状态
systemctl status postgresql-15

2. Ubuntu / Debian

# 1. 导入 PostgreSQL 官方 GPG 密钥
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 -

# 2. 更新软件包列表
sudo apt update

# 3. 安装 PostgreSQL
# 将 15 替换为你需要的版本
sudo apt install -y postgresql-15

# 4. 启动并设置开机自启
sudo systemctl enable --now postgresql
sudo systemctl status postgresql

🔧 安装后基础配置

1. 修改默认用户密码

PostgreSQL 安装后会创建一个 postgres 系统用户和数据库超级用户。你需要为其设置密码:

# 切换到 postgres 用户
sudo su - postgres

# 进入 psql 命令行
psql

# 在 psql 中执行以下 SQL 命令(注意末尾分号)
ALTER USER postgres WITH PASSWORD 'your_strong_password';

# 退出 psql
q

# 退出 postgres 用户
exit

2. 允许远程连接(关键步骤!)

默认情况下,PostgreSQL 只允许本地连接。要允许阿里云其他服务器或本地电脑连接,需修改两个配置文件:

文件路径:

  • postgresql.conf
  • pg_hba.conf

💡 提示:不同发行版路径略有不同,可通过以下命令查找:

sudo find / -name "postgresql.conf" 2>/dev/null
① 修改 postgresql.conf

找到并取消注释/修改以下行:

listen_addresses = '*'
port = 5432
② 修改 pg_hba.conf

在文件末尾添加以下行,允许任意 IP 访问(生产环境建议限制特定 IP):

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             0.0.0.0/0               md5
host    all             all             ::0/0                   md5
③ 重启服务使配置生效
# CentOS/RHEL
sudo systemctl restart postgresql-15

# Ubuntu/Debian
sudo systemctl restart postgresql

🌐 阿里云安全组配置(非常重要!)

即使防火墙和 PostgreSQL 都配置好了,如果阿里云控制台的安全组没有放行端口,外部依然无法连接。

  1. 登录 阿里云 ECS 控制台
  2. 找到你的实例 → 点击 安全组 → 配置规则
  3. 添加一条 入方向 规则:
    • 协议类型:自定义 TCP
    • 端口范围:5432/5432
    • 授权对象:0.0.0.0/0(或指定你的公网 IP)
    • 优先级:1

🛡️ 生产环境最佳实践建议

项目 建议
备份 启用自动备份或使用 pg_dump 定期备份到 OSS
监控 使用阿里云云监控或 Prometheus + Grafana 监控 CPU、内存、连接数
高可用 单节点 ECS 不适合生产核心业务,建议使用 阿里云 RDS PostgreSQL 或搭建主从复制
性能调优 根据 ECS 规格调整 shared_buffers, work_mem, max_connections 等参数
SSL 加密 生产环境务必启用 SSL 连接,防止数据窃听

❓ 常见问题排查

  1. 连接被拒绝?

    • 检查安全组是否放行 5432 端口。
    • 检查 pg_hba.conf 是否允许该 IP 连接。
    • 检查 postgresql.conf 中 listen_addresses 是否为 *。
  2. 忘记密码?

    • 以 postgres 用户身份登录:sudo su - postgres → psql
    • 执行:ALTER USER postgres WITH PASSWORD 'new_password';
  3. 如何创建新用户和数据库?

    CREATE USER myuser WITH PASSWORD 'mypassword';
    CREATE DATABASE mydb OWNER myuser;
    GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

💡 替代方案:直接使用阿里云 RDS PostgreSQL

如果你不是必须自建 PostgreSQL,强烈建议直接使用阿里云 RDS PostgreSQL:

  • ✅ 免运维:自动备份、补丁升级、高可用架构
  • ✅ 高性能:SSD 存储、弹性扩缩容
  • ✅ 安全:VPC 内网隔离、白名单机制
  • ✅ 成本:按需付费,无闲置资源浪费

除非你有特殊需求(如深度定制内核、学习目的、合规要求),否则 RDS 是更省心、更安全的选择。

未经允许不得转载:云服务器 » 阿里云服务器ecs安装postgresql?