正常所有服务运行正常
InfrawireInfrawire 标志文档

在 Linux VPS 上安装 PostgreSQL

PostgreSQL 是可靠的关系型数据库,适用于 Web 与分析场景。本指南涵盖 Ubuntu/Debian 上的安装、建库与基础安全。

前提条件

  • Ubuntu 20.04+ 或 Debian 11+,具备 sudo
  • 建议至少 1 GB RAM(更高负载建议 2 GB+)

安装

Bash
sudo apt update && sudo apt upgrade -y sudo apt install -y postgresql postgresql-contrib sudo systemctl enable postgresql sudo systemctl status postgresql

默认仅监听 本机127.0.0.1),适合应用与数据库同机部署。

创建应用用户与数据库

Bash
sudo -u postgres psql

psql 中(请修改名称与密码):

SQL
CREATE USER myapp WITH PASSWORD 'strong_password'; CREATE DATABASE myapp_db OWNER myapp; GRANT ALL PRIVILEGES ON DATABASE myapp_db TO myapp; \q

测试连接:

Bash
psql -h 127.0.0.1 -U myapp -d myapp_db

典型连接串

TEXT
postgresql://myapp:[email protected]:5432/myapp_db

安全要点

  1. 为应用账号设置强密码
  2. 非必要不要将 PostgreSQL 暴露到公网;若必须:严格防火墙、listen_addressespg_hba.conf,最好配合 VPN。
  3. 可结合 UFWFail2ban

远程访问(谨慎)

postgresql.conflisten_addresses = '*'pg_hba.conf 中仅允许可信 IP,例如:

TEXT
host myapp_db myapp 203.0.113.50/32 scram-sha-256
Bash
sudo systemctl restart postgresql

备份

Bash
sudo -u postgres pg_dump myapp_db > backup_myapp.sql sudo -u postgres psql myapp_db < backup_myapp.sql

建议用 cron 将备份放到站外存储。

故障排除

  • Peer authentication failed:使用 -h 127.0.0.1 或调整 pg_hba.conf
  • Connection refused:检查服务与端口(默认 5432)。