安装与环境搭建
High Contrast
Dark Mode
Light Mode
Sepia
Forest
2 min read466 words

安装与环境搭建

在开始任何 PostgreSQL 工程之前,先有一个稳定的本地开发环境和一个可以连接的服务端实例。这一节覆盖三种最常见的安装场景:macOS 本地开发、Ubuntu 服务器生产部署,以及 Docker 快速起步。


macOS 安装

方式一:Homebrew(推荐开发用)

# 安装 PostgreSQL 16(推荐)
brew install postgresql@16
# 启动服务
brew services start postgresql@16
# 确认已安装并启动
psql --version
# → psql (PostgreSQL) 16.x
# 连接到默认数据库
psql postgres

Homebrew 安装后的常用路径

内容 路径
数据目录 /opt/homebrew/var/postgresql@16/
配置文件 /opt/homebrew/var/postgresql@16/postgresql.conf
日志文件 /opt/homebrew/var/log/postgresql@16.log
pg_hba.conf /opt/homebrew/var/postgresql@16/pg_hba.conf

方式二:Postgres.app(macOS GUI,最简单)

下载 Postgres.app,双击安装,点击"Initialize",即可运行 PostgreSQL。适合不熟悉命令行的用户。

添加 CLI 工具到 PATH(安装后运行一次):

# 添加到 ~/.zshrc 或 ~/.bash_profile
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
source ~/.zshrc

Ubuntu 服务器安装

# 添加 PostgreSQL 官方 APT 仓库(获取最新版本,不用 Ubuntu 自带的旧版本)
sudo apt install -y curl ca-certificates
sudo install -d /usr/share/postgresql-common/pgdg
curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc \
--fail https://www.postgresql.org/media/keys/ACCC4CF8.asc
sudo sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] \
https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
> /etc/apt/sources.list.d/pgdg.list'
sudo apt update
sudo apt install -y postgresql-16 postgresql-client-16
# 验证服务状态
sudo systemctl status postgresql
# → active (running)

Ubuntu 安装后的常用路径

内容 路径
数据目录 /var/lib/postgresql/16/main/
配置文件 /etc/postgresql/16/main/postgresql.conf
pg_hba.conf /etc/postgresql/16/main/pg_hba.conf
日志目录 /var/log/postgresql/
Socket /var/run/postgresql/.s.PGSQL.5432

首次登录(Ubuntu 安装后默认用 postgres 系统用户):

# 切换到 postgres 用户
sudo -i -u postgres
# 进入 psql
psql
# 修改 postgres 用户密码(方便后续使用密码连接)
ALTER USER postgres WITH PASSWORD 'your_password_here';
\q

Docker 快速起步(本地开发与测试)

# 启动 PostgreSQL 16 容器
docker run -d \
--name postgres-dev \
-e POSTGRES_PASSWORD=devpassword \
-e POSTGRES_DB=myapp \
-p 5432:5432 \
-v postgres-data:/var/lib/postgresql/data \
postgres:16
# 连接到容器内的 psql
docker exec -it postgres-dev psql -U postgres -d myapp
# 停止/启动
docker stop postgres-dev
docker start postgres-dev

docker-compose.yml 模板(推荐用于项目):

version: '3.8'
services:
db:
image: postgres:16
environment:
POSTGRES_DB: myapp_dev
POSTGRES_USER: myapp
POSTGRES_PASSWORD: devpassword
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./sql/init:/docker-entrypoint-initdb.d  # 自动运行初始化 SQL
healthcheck:
test: ["CMD-SHELL", "pg_isready -U myapp -d myapp_dev"]
interval: 10s
retries: 5
volumes:
postgres_data:

版本选择建议

PostgreSQL 版本 状态 推荐场景
16 当前稳定版 新项目首选
15 活跃支持 已有项目,稳定运行中
14 活跃支持 老项目,注意 2026 年 EOL
13 及以下 即将/已 EOL 尽快升级

本书以 PostgreSQL 16 为基准版本,代码示例均在 16 上验证。绝大多数内容对 14/15 同样适用。


连接方式速查

# psql 连接语法
psql "postgresql://username:password@host:port/database"
# 等价的分参数写法
psql -h localhost -p 5432 -U postgres -d mydb
# 连接到本地 socket(无需密码,仅限本机)
psql -U postgres
# 连接远程服务器
psql -h 192.168.1.100 -p 5432 -U myuser -d mydb

本节记录清单


下一节psql 基础命令速查——连接上了,现在学会用 psql 交互式终端日常操作。