在阿里云轻量应用服务器上安装和配置 PostgreSQL 的步骤如下:
一、准备工作
-
登录轻量应用服务器
- 使用 SSH 登录到你的轻量应用服务器:
ssh root@<你的服务器公网IP> - 建议使用密钥或密码方式登录。
- 使用 SSH 登录到你的轻量应用服务器:
-
更新系统包管理器
sudo apt update && sudo apt upgrade -y
二、安装 PostgreSQL
以 Ubuntu/Debian 系统为例(轻量服务器默认常用系统):
1. 安装 PostgreSQL
sudo apt install postgresql postgresql-contrib -y
注意:CentOS/Rocky Linux 用户使用
yum或dnf: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
八、配置阿里云安全组(关键!)
-
登录 阿里云控制台
-
进入「轻量应用服务器」控制台
-
找到你的实例,点击进入详情页
-
在「防火墙」或「安全组」中添加规则:
- 协议类型:自定义 TCP
- 端口范围:
5432 - 源地址:
- 如仅自己访问:填写你本地公网 IP(如
123.123.123.123/32) - 测试用可写
0.0.0.0/0(不推荐长期使用)
- 如仅自己访问:填写你本地公网 IP(如
九、测试远程连接
使用 pgAdmin、DBeaver 或命令行从本地连接:
psql -h <服务器公网IP> -U myuser -d mydb -p 5432
输入密码后应能成功连接。
十、安全建议
- 不要使用默认的 postgres 用户进行远程连接
- 定期备份数据库
- 使用 SSL 加密连接(可选)
- 关闭不必要的端口和服务
✅ 至此,PostgreSQL 已在阿里云轻量服务器上成功安装并配置完毕!
如有问题,可通过日志排查:
sudo tail -f /var/log/postgresql/postgresql-*-main.log
需要为特定应用(如 Django、Node.js)配置连接?欢迎继续提问!
CLOUD技术笔记