在云服务器上如何手动安装PostgreSQL数据库?

下面以常见的 Linux 发行版为例,给出在云服务器上手动安装 PostgreSQL的完整步骤。你可以根据实际系统选择对应命令。


一、准备工作

  1. 登录云服务器
    使用 SSH 登录(例如):

    ssh user@your-server-ip
  2. 确认操作系统和包管理器

    • Ubuntu / Debian:apt
    • CentOS / RHEL / AlmaLinux / Rocky:yumdnf
  3. 更新软件源

    # 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云枢 » 在云服务器上如何手动安装PostgreSQL数据库?