下面以常见的 Linux 发行版为例,给出在云服务器上手动安装 PostgreSQL的完整步骤。你可以根据实际系统选择对应命令。
一、准备工作
-
登录云服务器
使用 SSH 登录(例如):ssh user@your-server-ip -
确认操作系统和包管理器
- Ubuntu / Debian:
apt - CentOS / RHEL / AlmaLinux / Rocky:
yum或dnf
- Ubuntu / Debian:
-
更新软件源
# Ubuntu/Debian sudo apt update # CentOS/RHEL 8+ (dnf) sudo dnf upgrade -y # CentOS 7 (yum) sudo yum update -y
二、安装 PostgreSQL(官方仓库方式)
1. Ubuntu / Debian
1.1 添加 PostgreSQL 官方 APT 源
以 PostgreSQL 16 为例(可按需更换版本):
# 安装依赖
sudo apt install -y curl ca-certificates gnupg
# 导入官方 GPG 密钥
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql.gpg
# 添加源列表(以 Debian 12 / Ubuntu 24.04 为例,版本号根据系统调整)
echo "deb [signed-by=/usr/share/keyrings/postgresql.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-16 postgresql-contrib-16
若需要其他版本,将
postgresql-16改为postgresql-15/postgresql-14等,并确认源中支持该版本。
1.2 启动服务并设置开机自启
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo systemctl status postgresql
2. CentOS / RHEL / AlmaLinux / Rocky
2.1 安装 PostgreSQL 官方 YUM/DNF 仓库
以 PostgreSQL 16 为例:
# 下载并安装 PGDG repo
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %rhel)-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 禁用默认 repo 中的 PostgreSQL(如有),只启用 pgdg
sudo dnf config-manager --set-enabled pgdg-common
若使用
yum(CentOS 7):sudo yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2.2 安装 PostgreSQL
# 查看可用版本
sudo dnf list postgresql*
# 安装指定版本(示例为 16)
sudo dnf install -y postgresql16-server postgresql16-contrib
2.3 初始化数据库集群
# 初始化数据目录(仅第一次)
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
注意:不同版本路径可能略有差异,如
/usr/lib64/pgsql/...,具体以实际安装为准。
2.4 启动服务并设置开机自启
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16
sudo systemctl status postgresql-16
三、配置远程访问(可选但常见)
默认情况下,PostgreSQL 只允许本地连接。如需从外部(包括你的电脑)访问,需要修改配置。
1. 修改监听地址
编辑配置文件(路径因版本/系统略有不同):
# Ubuntu/Debian
sudo nano /etc/postgresql/16/main/postgresql.conf
# CentOS/RHEL (示例)
sudo vi /var/lib/pgsql/16/data/postgresql.conf
找到并修改:
listen_addresses = '*'
保存后重启服务:
sudo systemctl restart postgresql # 或 postgresql-16
2. 修改认证规则(pg_hba.conf)
同样位置的文件:
# Ubuntu/Debian
sudo nano /etc/postgresql/16/main/pg_hba.conf
# CentOS/RHEL
sudo vi /var/lib/pgsql/16/data/pg_hba.conf
在文件末尾添加一行(示例:允许特定 IP 段通过密码登录):
host all all 0.0.0.0/0 md5
生产环境建议限制为具体 IP 或 CIDR,例如:
host all all 192.168.1.0/24 md5
重启服务:
sudo systemctl restart postgresql
3. 开放防火墙端口(云服务商安全组也要放行)
- 云服务器安全组:在云控制台放行 TCP 5432 端口(入方向)。
- 系统防火墙(如 firewalld):
# CentOS/RHEL (firewalld)
sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload
- Ubuntu (ufw):
sudo ufw allow 5432/tcp
四、创建管理员用户与数据库
1. 切换到 postgres 用户
sudo -i -u postgres
2. 创建新用户(示例:appuser)
CREATE USER appuser WITH PASSWORD 'StrongPassword123!';
3. 创建数据库并授权
CREATE DATABASE mydb OWNER appuser;
GRANT ALL PRIVILEGES ON DATABASE mydb TO appuser;
q
退出:
exit
五、验证安装
1. 本地连接测试
sudo -u postgres psql -c "SELECT version();"
应输出 PostgreSQL 版本信息。
2. 使用新账号远程连接测试(从本地客户端)
psql -h <服务器IP> -U appuser -d mydb -p 5432
输入密码后若能进入提示符,则说明远程访问配置成功。
六、后续建议
- 定期备份(
pg_dump+ 脚本自动化)。 - 开启日志(
logging_collector等参数)。 - 限制
pg_hba.conf中的访问来源。 - 根据业务需求调整内存、连接数等参数(
shared_buffers,max_connections等)。
如果你告诉我:
- 使用的操作系统(如 Ubuntu 22.04 / CentOS 7 等)
- 需要的 PostgreSQL 版本
- 是否需要远程访问
我可以给出一套完全针对你环境的“复制粘贴即可执行”的命令序列。
CLOUD云枢