PostgreSQL 是可靠的关系型数据库,适用于 Web 与分析场景。本指南涵盖 Ubuntu/Debian 上的安装、建库与基础安全。
前提条件
- Ubuntu 20.04+ 或 Debian 11+,具备
sudo - 建议至少 1 GB RAM(更高负载建议 2 GB+)
安装
Bashsudo 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),适合应用与数据库同机部署。
创建应用用户与数据库
Bashsudo -u postgres psql
在 psql 中(请修改名称与密码):
SQLCREATE USER myapp WITH PASSWORD 'strong_password'; CREATE DATABASE myapp_db OWNER myapp; GRANT ALL PRIVILEGES ON DATABASE myapp_db TO myapp; \q
测试连接:
Bashpsql -h 127.0.0.1 -U myapp -d myapp_db
典型连接串
TEXTpostgresql://myapp:[email protected]:5432/myapp_db
安全要点
- 为应用账号设置强密码。
- 非必要不要将 PostgreSQL 暴露到公网;若必须:严格防火墙、
listen_addresses、pg_hba.conf,最好配合 VPN。 - 可结合 UFW 与 Fail2ban。
远程访问(谨慎)
postgresql.conf 中 listen_addresses = '*',pg_hba.conf 中仅允许可信 IP,例如:
TEXThost myapp_db myapp 203.0.113.50/32 scram-sha-256
Bashsudo systemctl restart postgresql
备份
Bashsudo -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)。