Windows 安装 PostgreSQL:Installer / ZIP 手动安装 / Docker 三种方式

方式一:官方 EDB 安装包(推荐新手)

postgresql.org/download/windows 下载 EDB 安装器,双击 .exe 按向导操作:

  1. 选择组件:PostgreSQL Server + pgAdmin + Command Line Tools(全选即可)
  2. 安装路径默认 C:\Program Files\PostgreSQL\16\
  3. 设置 postgres 超级用户密码(这一步要记好,后面连接必须用)
  4. 端口保持默认 5432
  5. Locale 保持默认
  6. 等待安装完成

安装后验证:

# 命令行里输入(要先配好 PATH)
psql -U postgres -h localhost

# 输入密码后看到:
postgres=#

或者打开 pgAdmin 4 用图形界面管理。

方式二:ZIP 手动安装

适合不想用安装包、想自定义路径的场景。

1. 解压到目标目录,如 D:\pgsql

2. 初始化数据目录:

D:\pgsql\bin\initdb -D D:\pgsql\data -U postgres -W

-W 参数会提示设置 postgres 用户密码,必须加,否则后续连接会失败。

3. 启动服务:

D:\pgsql\bin\pg_ctl -D D:\pgsql\data -l D:\pgsql\logs\postgresql.log start

4. 连接验证:

D:\pgsql\bin\psql -U postgres -h localhost

5. 把 bin 目录加入 PATH:

系统属性 → 环境变量 → Path → 新增:

D:\pgsql\bin

加好之后才能直接用 psqlpg_ctl 等命令。

EDB 安装包也会自动加 PATH,ZIP 安装需要手动配。

方式三:Docker(开发推荐)

一条命令,跳过所有安装步骤:

docker run --name pgsql \
  -e POSTGRES_PASSWORD=123456 \
  -p 5432:5432 \
  -d postgres

连接:

psql -U postgres -h localhost
# 密码:123456

停止/启动:

docker stop pgsql
docker start pgsql

开发环境用 Docker 最省事,环境隔离,随时删掉重建。

常见问题

连不上 5432:

  • 防火墙没放行 → 允许 PostgreSQL 入站
  • 端口冲突 → 改 postgresql.conf 里的 port = 5433

忘记 postgres 密码: 修改 pg_hba.conf,把认证方式临时改成 trust,重启服务后进去改密码,再改回 scram-sha-256

psql 找不到命令: PATH 没配好。把 PostgreSQL bin 目录加进去,或者用完整路径调用。

版本选择

版本建议
PostgreSQL 17新项目首选(最新稳定版)
PostgreSQL 16最稳定,生产首选
PostgreSQL 15 及以下老项目兼容,新项目不建议

关于生产环境

生产环境强烈建议用 Linux(Ubuntu/Debian/Rocky Linux)跑 PostgreSQL:

  • 更好的 I/O 调度和文件系统(ext4/xfs)
  • pgBackRest、Patroni 等高可用工具主要支持 Linux
  • 运维脚本生态更成熟

Windows 版 PostgreSQL 可以用,但长期高并发稳定性和性能不如 Linux。开发/测试环境没问题,生产环境能用 Linux 就用 Linux。