下面以常见的 Linux 发行版(Ubuntu/Debian、CentOS/RHEL)为例,说明在云服务器上手动安装 PostgreSQL 的基本步骤。你可以根据实际系统版本做相应调整。
一、通用准备
-
登录云服务器
使用 SSH 登录:ssh username@your_server_ip -
更新软件包列表
- Ubuntu/Debian:
sudo apt update && sudo apt upgrade -y - CentOS/RHEL / AlmaLinux / Rocky Linux:
sudo yum install epel-release -y # 如尚未安装 EPEL sudo yum update -y
- Ubuntu/Debian:
-
确认系统架构与版本
uname -a lsb_release -a # Debian/Ubuntu cat /etc/os-release # 通用
二、Ubuntu / Debian 上安装 PostgreSQL
1. 添加官方仓库(推荐)
sudo apt install curl ca-certificates gnupg -y
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc |
sudo gpg --dearmor -o /usr/share/keyrings/postgresql-archive-keyring.gpg
创建源列表文件(以 Ubuntu 22.04 + PG 15 为例,版本号按需调整):
echo "deb [signed-by=/usr/share/keyrings/postgresql-archive-keyring.gpg]
http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" |
sudo tee /etc/apt/sources.list.d/pgdg.list
然后更新并安装:
sudo apt update
sudo apt install postgresql-15 postgresql-contrib -y
postgresql-15中的15是主版本号,可根据需要改为14、16等。
2. 启动服务并设置开机自启
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo systemctl status postgresql
3. 初始化默认用户(postgres)
PostgreSQL 安装后会自动创建 postgres 系统用户和数据库超级用户。
进入 PostgreSQL shell:
sudo -u postgres psql
在提示符下可以执行一些基础操作,例如修改密码:
password postgres
q
退出后返回 shell。
4. 配置远程访问(可选但常见)
编辑配置文件:
sudo nano /etc/postgresql/15/main/postgresql.conf
找到并修改:
listen_addresses = '*'
再编辑认证配置:
sudo nano /etc/postgresql/15/main/pg_hba.conf
在末尾添加一行(允许任意 IP 通过 md5 密码认证,生产环境建议限制 IP):
host all all 0.0.0.0/0 md5
或更严格一点,只允许特定网段:
host all all 192.168.1.0/24 md5
重启服务:
sudo systemctl restart postgresql
5. 检查端口是否监听
sudo ss -tlnp | grep 5432
# 或
netstat -tlnp | grep 5432
若未看到 0.0.0.0:5432 或 :::5432,说明监听地址未正确配置。
三、CentOS / RHEL / AlmaLinux / Rocky Linux 上安装
1. 使用官方 YUM 仓库
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
根据你的系统版本选择对应 repo(示例为 EL9;如果是 EL7/8,请替换 URL 中的 EL-9)。
然后安装指定版本:
sudo dnf install postgresql-server postgresql-contrib -y
2. 初始化数据库集群
sudo /usr/bin/postgresql-setup initdb
启动并设置开机自启:
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo systemctl status postgresql
3. 修改密码与远程访问
进入 PostgreSQL:
sudo -u postgres psql
password postgres
q
编辑配置:
sudo vi /var/lib/pgsql/data/postgresql.conf
设置:
listen_addresses = '*'
编辑 pg_hba.conf(通常位于 /var/lib/pgsql/data/):
sudo vi /var/lib/pgsql/data/pg_hba.conf
在末尾添加:
host all all 0.0.0.0/0 md5
重启服务:
sudo systemctl restart postgresql
四、防火墙与安全组配置
1. 云服务器安全组(云厂商控制台)
在阿里云、腾讯云、AWS、华为云等控制台的“安全组”或“防火墙规则”中:
- 添加入站规则:
- 协议:TCP
- 端口:5432
- 来源:根据需要设置为
0.0.0.0/0(不推荐)或仅你的管理 IP / 业务网段。
2. 系统防火墙(firewalld / ufw)
-
Ubuntu (ufw):
sudo ufw allow 5432/tcp sudo ufw reload -
CentOS/RHEL (firewalld):
sudo firewall-cmd --permanent --add-port=5432/tcp sudo firewall-cmd --reload
五、验证安装
从服务器本地测试:
sudo -u postgres psql -c "SELECT version();"
从另一台机器(确保防火墙已放行)测试连接:
psql -h your_server_ip -U postgres -d postgres -W
输入密码后若能进入命令行,则说明安装成功且远程可访问。
六、后续建议(简要)
- 不要将
postgres账户用于普通应用,建议为每个应用创建独立数据库和用户。 - 定期备份:使用
pg_dump或云厂商的快照功能。 - 开启日志记录,监控慢查询和资源使用情况。
- 如需高可用、读写分离、集群等,可在基础安装之上搭建 Patroni、Repmgr 等方案。
如果你告诉我:
- 具体操作系统及版本(如 Ubuntu 22.04、CentOS 7 等)
- 希望安装的 PostgreSQL 版本
- 是否需要远程访问 / 是否已有安全组规则
我可以给出完全针对你环境的完整命令脚本(含注释)。
CLOUD技术博