跳到主要内容
PostgreSQL 安装指南(Linux/Windows/macOS/Docker) | 极客日志
SQL
PostgreSQL 安装指南(Linux/Windows/macOS/Docker) PostgreSQL 安装指南涵盖 Linux(Ubuntu/CentOS)、Windows、macOS 及 Docker 四大主流环境的部署方案。内容包含官方仓库配置、包管理器使用、图形化安装步骤、容器化持久化数据管理及安全加固策略。重点解决端口冲突、认证失败、中文乱码等常见问题,并提供生产环境与开发环境的最佳实践建议,帮助用户快速完成数据库初始化与连接验证。
CoderByte 发布于 2026/2/16 更新于 2026/6/1 17 浏览一、安装前准备:通用原则与注意事项
在具体操作前,需明确以下通用原则:
1.1 版本选择
1.2 权限要求
安装过程通常需要 root / Administrator / sudo 权限 。
数据目录(PGDATA)应由专用用户(如 postgres)拥有,禁止 root 运行数据库进程。
1.3 端口与防火墙
默认端口:5432
若需远程访问,需开放防火墙端口(但首次安装建议仅本地访问)。
1.4 存储路径
默认数据目录:
Linux: /var/lib/pgsql/data 或 /var/lib/postgresql/{version}/main
Windows: C:\Program Files\PostgreSQL\{version}\data
macOS (Homebrew): /opt/homebrew/var/postgresql(Apple Silicon)或 /usr/local/var/postgres
建议预留足够磁盘空间(至少 1GB 起)。
二、Linux 系统安装 PostgreSQL
Linux 发行版众多,本文以 Ubuntu(Debian 系) 和 CentOS/Rocky Linux(RHEL 系) 为代表。
2.1 Ubuntu / Debian 安装(推荐使用官方 APT 仓库)
优势:自动更新、版本丰富、集成 systemd 服务。
步骤 1:添加官方 APT 仓库
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs) -pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt update
注意:$(lsb_release -cs) 自动获取发行版代号(如 jammy、focal)。若为非标准系统,可手动替换。
步骤 2:安装 PostgreSQL
sudo apt install postgresql-16 postgresql-client-16 postgresql-contrib-16
步骤 3:验证安装
sudo systemctl status postgresql@16-main
sudo -u postgres psql -c "SELECT version();"
步骤 4:初始化与配置(通常自动完成)
数据目录:/var/lib/postgresql/16/main
配置文件:
postgresql.conf:主配置(监听地址、内存、日志等)
pg_hba.conf:客户端认证配置
安全提示 :默认仅允许本地 peer 认证,无需密码即可登录(通过 sudo -u postgres)。
2.2 CentOS / Rocky Linux / AlmaLinux 安装(使用官方 YUM 仓库)
步骤 1:添加官方 YUM 仓库
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
步骤 2:安装 PostgreSQL sudo dnf install -y postgresql16-server postgresql16-contrib
步骤 3:初始化数据库集群
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
sudo systemctl enable --now postgresql-16
步骤 4:验证 sudo -u postgres psql -c "SELECT current_database();"
💡 提示:数据目录为 /var/lib/pgsql/16/data。
2.3 从源码编译安装(高级用户) 适用于需要定制编译选项(如启用 ICU、LDAP、SSL)或最新开发版。
sudo apt install build-essential zlib1g-dev libreadline-dev flex bison libssl-dev
wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.gz
tar -xzf postgresql-16.1.tar.gz
cd postgresql-16.1
./configure --prefix=/usr/local/pgsql --with-openssl --enable-thread-safety
make -j$(nproc )
sudo make install
sudo useradd -r -s /bin/false postgres
sudo mkdir /usr/local/pgsql/data
sudo chown postgres:postgres /usr/local/pgsql/data
sudo -u postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start
注意:源码安装需手动管理服务、PATH 环境变量等。
三、Windows 系统安装 PostgreSQL Windows 提供图形化安装程序,适合桌面开发。
3.1 下载安装程序
3.2 图形化安装步骤
运行安装程序 (如 postgresql-16.1-1-windows-x64.exe)
选择安装目录 (默认 C:\Program Files\PostgreSQL\16)
设置数据目录 (默认 C:\Program Files\PostgreSQL\16\data)
设置超级用户密码 (务必牢记!此为 postgres 用户密码)
选择端口 (默认 5432,若冲突可修改)
选择区域(Locale) (建议 UTF8,避免中文乱码)
安装组件 :
PostgreSQL Server(必需)
pgAdmin 4(图形化管理工具,推荐)
Stack Builder(附加工具,可选)
开始安装 → 等待完成
3.3 验证安装
pgAdmin 4 :
安装后自动创建快捷方式;
首次启动需设置管理员邮箱和密码;
添加服务器:Host localhost,Port 5432,Username postgres,Password(安装时设置)
cd "C:\Program Files\PostgreSQL\16\bin"
psql -U postgres -h localhost
3.4 服务管理
服务名称:postgresql-x64-16
可通过 Windows 服务管理器 启停;
net start postgresql-x64-16
net stop postgresql-x64-16
🔒 安全建议 :生产环境中应限制远程访问,修改默认密码策略。
四、macOS 系统安装 PostgreSQL macOS 开发者常用 Homebrew 或 Postgres.app。
4.1 使用 Homebrew(推荐)
步骤 1:安装 Homebrew(若未安装) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) "
步骤 2:安装 PostgreSQL
brew install postgresql@16
brew services start postgresql@16
💡 提示:Apple Silicon(M1/M2)芯片路径为 /opt/homebrew,Intel 为 /usr/local。
步骤 3:验证
psql postgres
createdb mydb
psql mydb
步骤 4:常用命令 brew services list
brew info postgresql@16
psql -l
📁 数据目录:$(brew --prefix)/var/postgresql@16
4.2 使用 Postgres.app(图形化首选)
访问 https://postgresapp.com/
下载并拖拽到 Applications 文件夹
首次启动点击 'Initialize' 创建服务器
自动配置 PATH,终端可直接使用 psql
菜单栏图标可快速启停、查看日志、打开 psql
✨ 优点:零配置、一键启停、多版本共存、集成 pgAdmin。
五、Docker 容器化安装 PostgreSQL 容器化部署适合开发、测试、CI/CD 及微服务架构。
5.1 拉取官方镜像
5.2 快速启动(临时容器) docker run --name mypg -e POSTGRES_PASSWORD=mypassword -p 5432:5432 -d postgres:16
-e POSTGRES_PASSWORD:设置 postgres 用户密码(必需)
-p 5432:5432:映射端口
-d:后台运行
5.3 持久化数据(生产推荐)
docker volume create pgdata
docker run --name mypg \
-e POSTGRES_PASSWORD=mypassword \
-e POSTGRES_DB=myapp \
-v pgdata:/var/lib/postgresql/data \
-p 5432:5432 \
-d postgres:16
5.4 自定义配置
echo "shared_preload_libraries = 'pg_stat_statements'" > ./my-postgres.conf
docker run ... -v $(pwd )/my-postgres.conf:/etc/postgresql/postgresql.conf ...
echo "CREATE USER appuser WITH PASSWORD 'apppass';" > init.sql
docker run ... -v $(pwd )/init.sql:/docker-entrypoint-initdb.d/init.sql ...
官方镜像会在首次启动时执行 /docker-entrypoint-initdb.d/ 下的 .sql 或 .sh 脚本。
5.5 连接容器内数据库
docker exec -it mypg psql -U postgres
psql -h localhost -U postgres -d postgres
六、安装后关键配置与安全加固
6.1 修改监听地址(允许远程访问) listen_addresses = '*' # 或指定 IP,如 'localhost,192.168.1.100'
port = 5432
6.2 配置客户端认证(pg_hba.conf) # TYPE DATABASE USER ADDRESS METHOD
local all postgres peer
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
host mydb appuser 192.168.1.0/24 md5
md5:密码加密认证
trust:无密码(仅限本地测试)
修改后需重载配置:SELECT pg_reload_conf(); 或 systemctl reload postgresql
6.3 创建应用用户与数据库
sudo - u postgres psql
CREATE USER myapp WITH PASSWORD 'strongpassword' ;
CREATE DATABASE myapp OWNER myapp;
\q
6.4 设置环境变量(可选) 为方便命令行使用,可将 psql 加入 PATH:
Linux/macOS: export PATH="/usr/pgsql-16/bin:$PATH"(加入 ~/.bashrc)
Windows: 系统环境变量 → Path → 添加 C:\Program Files\PostgreSQL\16\bin
七、常见问题排查
7.1 "psql: command not found"
原因:PATH 未包含 PostgreSQL bin 目录。
解决:按上述'环境变量'设置。
7.2 "FATAL: password authentication failed"
检查 pg_hba.conf 是否为 md5;
确认密码正确;
重启或重载服务使配置生效。
7.3 端口被占用
查找占用进程:sudo lsof -i :5432(Linux/macOS)或 netstat -ano | findstr :5432(Windows)
终止进程或修改 PostgreSQL 端口。
7.4 中文乱码
确保数据库创建时指定 LC_COLLATE='zh_CN.UTF-8'(Linux);
客户端终端编码为 UTF-8;
在 postgresql.conf 中设置 client_encoding = 'UTF8'。
总结 平台 推荐方式 适用场景 Ubuntu 官方 APT 仓库 生产服务器、云主机 CentOS 官方 YUM 仓库 企业级 Linux 服务器 Windows EDB 图形安装程序 桌面开发、学习 macOS Homebrew 或 Postgres.app 本地开发、快速原型 任意平台 Docker 容器 微服务、CI/CD、隔离测试
生产环境 :优先使用系统包管理器(APT/YUM),便于维护和监控;
开发环境 :Docker 或 Postgres.app 提供最大灵活性;
安全第一 :始终设置强密码、限制远程访问、定期更新。
PostgreSQL 的安装只是第一步,后续还需关注备份策略(pg_dump/pg_basebackup)、性能调优(shared_buffers, work_mem)、高可用(流复制、Patroni)等进阶主题。
安装完成后,立即运行 \conninfo 和 SELECT version(); 验证环境,并尝试创建第一个数据库。
相关免费在线工具 SQL 美化和格式化 在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online
SQL转CSV/JSON/XML 解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online
CSV 工具包 CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
Markdown转HTML 将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online