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

在阿里云轻量应用服务器上安装和配置 PostgreSQL 的步骤如下:


一、准备工作

  1. 登录轻量应用服务器

    • 使用 SSH 登录到你的轻量应用服务器:
      ssh root@<你的服务器公网IP>
    • 建议使用密钥或密码方式登录。
  2. 更新系统包管理器

    sudo apt update && sudo apt upgrade -y

二、安装 PostgreSQL

以 Ubuntu/Debian 系统为例(轻量服务器默认常用系统):

1. 安装 PostgreSQL

sudo apt install postgresql postgresql-contrib -y

注意:CentOS/Rocky Linux 用户使用 yumdnf

sudo dnf install postgresql-server postgresql-contrib -y
sudo postgresql-setup --initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql

三、启动并启用 PostgreSQL 服务

sudo systemctl start postgresql
sudo systemctl enable postgresql

检查状态:

sudo systemctl status postgresql

四、配置 PostgreSQL

1. 切换到 postgres 用户

PostgreSQL 默认创建一个名为 postgres 的系统用户和数据库用户。

sudo -i -u postgres

2. 进入 PostgreSQL shell

psql

你会进入 PostgreSQL 的命令行界面,提示符变为 postgres=#


五、设置密码和创建新用户(可选但推荐)

1. 为 postgres 用户设置密码

password postgres

输入并确认新密码(建议强密码)。

2. 创建新数据库用户(例如 myuser)

CREATE USER myuser WITH PASSWORD 'your_password';

3. 创建数据库并授权

CREATE DATABASE mydb OWNER myuser;

4. 赋予权限(如需要)

GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

5. 退出 psql

q

返回到普通用户环境:

exit

六、配置远程访问(如需从外部连接)

⚠️ 注意:开放远程访问存在安全风险,请确保配置防火墙和强密码。

1. 修改 PostgreSQL 配置文件

编辑主配置文件 postgresql.conf

sudo nano /etc/postgresql/*/main/postgresql.conf

找到并修改以下行:

listen_addresses = 'localhost'

改为:

listen_addresses = '*'

(或指定 IP,如 'localhost,192.168.1.100'

保存并退出(Ctrl+O → Enter → Ctrl+X)。

2. 配置客户端认证

编辑 pg_hba.conf 文件:

sudo nano /etc/postgresql/*/main/pg_hba.conf

在文件末尾添加允许远程连接的规则(示例):

# 允许特定 IP 通过密码连接
host    all             all             192.168.1.0/24        md5
# 或允许所有 IP(不推荐用于生产)
host    all             all             0.0.0.0/0             md5

更安全的方式是限制为你的固定 IP。


七、重启 PostgreSQL 服务

sudo systemctl restart postgresql

八、配置阿里云安全组(关键!)

  1. 登录 阿里云控制台

  2. 进入「轻量应用服务器」控制台

  3. 找到你的实例,点击进入详情页

  4. 在「防火墙」或「安全组」中添加规则:

    • 协议类型:自定义 TCP
    • 端口范围:5432
    • 源地址:
      • 如仅自己访问:填写你本地公网 IP(如 123.123.123.123/32
      • 测试用可写 0.0.0.0/0不推荐长期使用

九、测试远程连接

使用 pgAdmin、DBeaver 或命令行从本地连接:

psql -h <服务器公网IP> -U myuser -d mydb -p 5432

输入密码后应能成功连接。


十、安全建议

  1. 不要使用默认的 postgres 用户进行远程连接
  2. 定期备份数据库
  3. 使用 SSL 加密连接(可选)
  4. 关闭不必要的端口和服务

✅ 至此,PostgreSQL 已在阿里云轻量服务器上成功安装并配置完毕!

如有问题,可通过日志排查:

sudo tail -f /var/log/postgresql/postgresql-*-main.log

需要为特定应用(如 Django、Node.js)配置连接?欢迎继续提问!