1. 首页 > PostgreSQL教程 > 正文

数据库教程FGMT46‑PG-Win平台PostgreSQL安装配置与管理入门

数据库教程FGMT46‑PG-Win平台PostgreSQL安装配置与管理入门

# Windows平台PostgreSQL18安装配置与管理入门
## 前言
本套风哥教程面向数据库工程师、DBA、IT运维人员、数据库架构师、大数据工程师,完整讲解Windows平台PostgreSQL全套部署与基础管理知识。风哥教程本文分为理论原理与实战操作两大模块,理论部分包含项目规划、环境评估、两种安装方式原理差异、核心配置文件解析;实战部分基于Windows主机`fgedu‑net‑cn1`、`fgedu‑net‑cn2`,硬件规格统一**64G内存,8CPU**,数据根目录统一使用`/fgedudb`,数据库/实例名`fgedudb`,业务用户名`fgedu`,包含大量可直接复现CMD/PowerShell命令与SQL语句,覆盖ZIP压缩包部署、EXE图形安装包部署、参数调优、服务启停、psql命令行使用、pgAdmin图形管理、卸载流程,同时整理大量Windows平台常见故障排查方案。

风哥教程本文学习目标:能够完成Windows环境PostgreSQL的项目前期规划,熟练掌握ZIP Archive压缩包、Installer图形安装包两种部署方案,完成实例参数调优,掌握数据库启停、账号库管理,熟练使用psql命令行与pgAdmin图形工具,能够执行完整卸载操作,具备Windows环境PostgreSQL日常基础运维排错能力。

> 实操提示:Windows下执行初始化、注册服务操作,必须使用**管理员身份**打开CMD/PowerShell;生产环境部署前,需要完成备份策略、权限规划、端口防火墙规划。
> 网上搜索风哥教程可以学习全套数据库教程

## 目录
1. Windows平台PostgreSQL项目规划理论
1.1 Windows平台PostgreSQL项目前期规划要点
1.2 PostgreSQL运行环境软硬件评估
1.3 PostgreSQL两种安装介质原理对比(ZIP Archive与Installer)
1.4 PostgreSQL核心配置文件概念(postgresql.conf、pg_hba.conf、pg_ident.conf)
1.5 Windows平台PostgreSQL服务运行机制
1.6 64G内存8CPU硬件规格参数调优理论说明
1.7 Windows平台PostgreSQL权限与安全注意事项
2. PostgreSQL软件下载与环境准备实战
2.1 PostgreSQL官方介质下载渠道说明
2.2 Windows系统环境前置检查(磁盘、端口、权限、防火墙)
2.3 目录规划,统一使用/fgedudb目录规范
3. 方式一:ZIP Archive压缩包(二进制)安装PostgreSQL(主机fgedu‑net‑cn1)
3.1 解压二进制包,目录部署
3.2 initdb工具初始化数据库集群
3.3 postgresql.conf性能参数修改(64G内存8CPU模板)
3.4 pg_hba.conf访问认证配置修改
3.5 Windows服务注册、开机自启配置
3.6 pg_ctl命令启停、状态查看操作
3.7 psql命令行登录,创建业务库fgedudb、业务用户fgedu
4. 方式二:Installer图形化EXE安装包部署PostgreSQL(主机fgedu‑net‑cn2)
4.1 EXE安装向导完整步骤实操
4.2 安装完成后修改核心配置文件
4.3 Windows服务管理,启停与自启调整
4.4 psql命令行连接验证,库与账号创建
5. PostgreSQL数据库基础使用实战
5.1 psql命令行常用元命令实操
5.2 业务库、schema、表基础CRUD实操
5.3 pgAdmin 4图形化管理工具安装配置、连接实例
5.4 日志查看、基础系统视图查询
6. Windows平台PostgreSQL卸载完整流程实战
6.1 ZIP压缩包版本卸载(取消服务注册、清理目录)
6.2 Installer EXE版本卸载(程序卸载+残留目录清理)
7. Windows平台PostgreSQL常见故障排查
7.1 initdb初始化失败权限不足
7.2 pg_ctl启动失败,pid文件残留
7.3 本地可以登录,远程无法访问
7.4 psql命令无法识别,环境变量PATH配置问题
7.5 中文乱码,字符集locale配置错误
8. 风哥针对本文总结

## 1 Windows平台PostgreSQL项目规划理论
> 风哥 itpux‑com

### 1.1 Windows平台PostgreSQL项目前期规划要点
在Windows环境部署PostgreSQL,不能直接下载介质直接安装,需要提前完成项目规划,规划要点包含如下内容:
1. **硬件资源规划**:确认服务器内存、CPU、磁盘IO能力,区分开发测试环境与生产业务环境;本文统一硬件规格64G内存,8CPU。
2. **目录规划**:二进制程序目录、数据目录、日志目录相互分离,不要放在系统盘`C:\`,本教程统一根目录`/fgedudb`,Windows实际路径为`D:\fgedudb`;数据目录、日志目录独立,便于后期备份、扩容。
3. **端口规划**:默认端口5432,如果单机部署多套PostgreSQL实例,需要规划不同TCP端口,避免端口冲突。
4. **账号安全规划**:超级用户postgres密码复杂度,业务普通账号权限最小化,远程访问IP白名单规划。
5. **防火墙规划**:Windows防火墙放行数据库TCP端口,生产环境限制访问来源IP,禁止全网0.0.0.0无限制访问。
6. **备份策略规划**:部署同时确定备份方案,pg_dump逻辑备份、pg_basebackup物理备份,定时备份任务。
7. **服务启动模式规划**:是否配置Windows开机自动启动服务;测试环境可以手动启动,生产业务环境必须配置自动开机启动。

### 1.2 PostgreSQL运行环境软硬件评估
软件层面:PostgreSQL Windows版本仅支持Windows10、Windows11、Windows Server2019及以上版本;不支持老旧Windows Server2012及更早操作系统。
硬件层面:
– CPU:最低2核,生产建议4核以上,本教程8CPU;PostgreSQL后台worker进程、并行查询会消耗CPU资源。
– 内存:最低2G内存;生产推荐16G以上,本教程为64G大内存配置,内存直接影响shared_buffers缓冲池、排序work_mem。
– 磁盘:优先SSD/NVMe磁盘;数据目录磁盘预留足够空间,磁盘IO性能直接影响WAL预写日志、数据读写性能;数据盘与系统盘分离。

> 网上搜索风哥教程可以学习全套数据库教程

### 1.3 PostgreSQL两种安装介质原理对比(ZIP Archive与Installer)
|项目 | ZIP Archive(ZIP二进制压缩包) | Installer EXE图形安装包 |
|—|—|—|
|部署方式 | 解压即可使用,无向导安装,全部通过命令行操作 | EDB提供图形化向导,鼠标点击完成安装 |
|Windows服务 | 需要手动执行pg_ctl register注册服务 | 安装向导自动注册Windows系统服务 |
|自带组件 | 仅核心bin二进制程序,**不自带pgAdmin**,需要独立下载pgAdmin | 内置pgAdmin4、StackBuilder工具 |
|配置文件 | initdb初始化的时候自动生成postgresql.conf、pg_hba.conf | 安装向导完成自动生成配置文件 |
|适用场景 | 运维人员、自动化脚本部署、多实例批量部署;测试环境、生产环境均可 | 新手、开发人员,快速一键部署单实例 |
|可控度 | 极高,所有目录、参数全部手动控制 | 部分目录默认固化,修改需要后期调整配置 |

ZIP压缩包适合DBA运维人员,自由度高,适合单机部署多套PostgreSQL实例;Installer EXE适合快速搭建开发测试环境。两种介质生成的PostgreSQL数据库集群功能完全一致,没有内核功能差异。

### 1.4 PostgreSQL核心配置文件概念
PostgreSQL集群初始化完成之后,数据目录下面会生成三份关键配置文件,是Windows运维的核心对象:
1. **postgresql.conf**:实例主参数配置文件,内存、连接数、WAL日志、并行、日志全部在此配置;修改之后需要reload或者重启数据库生效。
2. **pg_hba.conf**:主机认证访问控制文件,控制哪些IP、哪些用户可以连接数据库,认证方式(md5/scram‑sha‑256/trust);reload即可生效,不需要重启实例。
3. **pg_ident.conf**:操作系统用户与数据库角色映射配置,Windows环境使用相对较少。

> 风哥教程 113257174

### 1.5 Windows平台PostgreSQL服务运行机制
Windows下PostgreSQL可以作为普通控制台进程直接运行,也可以注册为Windows后台系统服务。
– ZIP包默认不会注册服务,必须手动执行`pg_ctl register`命令注册;
– 注册为Windows服务之后,可以在`services.msc`服务管理器设置启动类型:自动、自动(延迟)、手动、禁用;
– 服务内部运行账号:ZIP包注册服务默认本地系统账号;EXE安装包会创建Windows本地postgres专用用户运行服务;
> 注意:PostgreSQL数据目录的文件夹权限,必须保证服务运行账号拥有完全读写权限,否则实例启动失败。

### 1.6 64G内存8CPU硬件规格参数调优理论说明
Windows平台PostgreSQL内存参数和Linux有区别,Windows系统内核会限制shared_buffers大小,不建议设置过大。针对**64G内存,8CPU Windows服务器**的核心参数理论说明:
1. `shared_buffers`:共享缓冲池,Windows平台官方建议设置物理内存25%,64G内存设置16G;Windows不建议超过16G。
2. `effective_cache_size`:规划的操作系统文件缓存,设置物理内存50%,64G设置32G;给查询优化器评估IO代价。
3. `work_mem`:每个排序、哈希操作单会话内存,设置64MB;并发会话多的时候不要盲目调大,防止内存耗尽。
4. `maintenance_work_mem`:vacuum、create index维护操作内存,设置2GB。
5. `max_connections`:最大连接数,设置300;大量并发业务建议搭配pgBouncer连接池。
6. `max_worker_processes`:后台进程最大数量,8CPU设置16;并行查询相关参数配套调整。
7. `listen_addresses`:监听地址,生产环境不要写`*`,按需填写IP。
8. `wal_buffers`:WAL日志缓冲,自动即可。

> 上51CTO搜索风哥可以学习全套数据库教程

### 1.7 Windows平台PostgreSQL权限与安全注意事项
1. 不要使用trust信任认证模式用于生产,优先使用`scram‑sha‑256`密码认证;trust模式不需要密码直接登录,风险极高。
2. pg_hba.conf严格限制来源IP,禁止`0.0.0.0/0`全网访问。
3. 数据目录文件夹权限收紧,不要开放Everyone全部权限,只给PostgreSQL服务账号读写权限。
4. 超级用户postgres日常业务不要使用,业务使用普通业务账号fgedu。
5. Windows防火墙限制5432端口访问来源,不要直接对公网全部开放端口。

## 2 PostgreSQL软件下载与环境准备实战
### 2.1 PostgreSQL官方介质下载渠道说明
PostgreSQL Windows二进制介质由EDB企业提供,两类介质下载位置:
1. ZIP Archive压缩包:PostgreSQL‑18.x‑windows‑x64‑binaries.zip,只有二进制程序,无图形安装向导。
2. Installer EXE安装包:postgresql‑18.x‑windows‑x64.exe,图形向导安装包,内置pgAdmin。

> 注意:不要从第三方软件站下载,优先EDB官方下载,保证介质完整性。

### 2.2 Windows系统环境前置检查(PowerShell管理员模式执行)
“`powershell
# 1. 检查端口5432是否已经被占用
netstat -ano | findstr “:5432”

# 2. 检查磁盘剩余空间,本教程D盘fgedudb目录
Get‑Volume -DriveLetter D

# 3. 防火墙查看5432端口规则
Get‑NetFirewallRule | Where‑Object DisplayName ‑match “5432”
“`
– 如果5432端口已经被占用,规划使用其他端口例如5433。
– 如果防火墙没有放行,后续根据业务需要添加入站规则。

### 2.3 目录规划,统一使用/fgedudb目录规范
Windows下对应盘符D盘,创建如下目录,PowerShell管理员执行:
“`powershell
# 创建PostgreSQL二进制程序目录、数据目录、日志目录
New‑Item ‑Path D:\fgedudb\pgsql18\bin ‑ItemType Directory ‑Force
New‑Item ‑Path D:\fgedudb\fgedudb_data ‑ItemType Directory ‑Force
New‑Item ‑Path D:\fgedudb\log ‑ItemType Directory ‑Force
“`
– 二进制程序:`D:\fgedudb\pgsql18\bin`
– 实例数据目录:`D:\fgedudb\fgedudb_data`
– 日志目录:`D:\fgedudb\log`

> 风哥数据库教程 itpux‑com

## 3 方式一:ZIP Archive压缩包(二进制)安装PostgreSQL(主机fgedu‑net‑cn1)
> 实验主机`fgedu‑net‑cn1`,Windows Server,硬件规格64G内存8CPU;使用ZIP二进制包部署,完全命令行操作。

### 3.1 解压二进制包,目录部署
将下载的`postgresql‑18.x‑windows‑x64‑binaries.zip`解压,把bin全部复制到`D:\fgedudb\pgsql18\bin`。
PowerShell切换到bin目录:
“`powershell
cd D:\fgedudb\pgsql18\bin
“`
> 提示:可以把`D:\fgedudb\pgsql18\bin`加入系统PATH环境变量,之后任意位置调用psql、pg_ctl、initdb工具。

### 3.2 initdb工具初始化数据库集群
> ⚠️必须**管理员身份**运行PowerShell,初始化生成整套数据目录、配置文件。
initdb关键参数说明:
– `-D` 指定数据目录 `D:\fgedudb\fgedudb_data`
– `-U` 指定超级用户名称,postgres
– `-W` 初始化设置超级用户密码
– `-E UTF8` 数据库默认编码UTF‑8
– `‑‑locale=zh‑CN` 区域语言
– `-A scram‑sha‑256` 默认认证方式使用scram‑sha‑256,安全生产模式

执行初始化命令:
“`powershell
.\initdb.exe -D D:\fgedudb\fgedudb_data -U postgres -W -E UTF8 –locale=zh-CN -A scram-sha-256
“`
执行完成,提示successfully,代表集群初始化成功;数据目录下生成postgresql.conf、pg_hba.conf配置文件。

### 3.3 postgresql.conf性能参数修改(64G内存8CPU模板)
打开文件`D:\fgedudb\fgedudb_data\postgresql.conf`,修改核心参数:
“`ini
#连接配置
listen_addresses = ‘fgedu‑net‑cn1,127.0.0.1’
port = 5432
max_connections = 300

#内存配置(Windows 64G内存,8CPU)
shared_buffers = 16GB
effective_cache_size = 32GB
work_mem = 64MB
maintenance_work_mem = 2GB

#进程配置
max_worker_processes = 16
max_parallel_workers = 8
max_parallel_workers_per_gather = 4

#日志配置
log_directory = ‘D:/fgedudb/log’
log_filename = ‘postgresql‑%Y‑%m‑%d.log’
logging_collector = on

#WAL预写日志
wal_level = replica
max_wal_size = 8GB
min_wal_size = 2GB
“`

### 3.4 pg_hba.conf访问认证配置修改
编辑`D:\fgedudb\fgedudb_data\pg_hba.conf`,配置访问白名单,示例允许本机与内网网段访问:
“`ini
#本地本机访问
local all all scram‑sha‑256
host all all 127.0.0.1/32 scram‑sha‑256
#内网网段,替换为业务实际网段
host all all 192.168.1.0/24 scram‑sha‑256
“`
> 禁止写`0.0.0.0/0`全网开放访问,存在严重安全风险。

> 风哥教程 113257174

### 3.5 Windows服务注册、开机自启配置
管理员PowerShell,bin目录下执行pg_ctl注册Windows系统服务;服务名称命名`PostgreSQL‑18‑fgedudb`。
“`powershell
cd D:\fgedudb\pgsql18\bin
.\pg_ctl.exe register -N “PostgreSQL‑18‑fgedudb” -D “D:\fgedudb\fgedudb_data” -S auto
“`
参数说明:
– `-N` Windows服务名称
– `-D` 数据目录完整路径
– `-S auto` 设置服务启动类型为自动开机启动。

注册成功提示`Service registered successfully`。
> 按下Win+R输入`services.msc`打开服务管理器,即可看到新注册的PostgreSQL‑18‑fgedudb服务。

### 3.6 pg_ctl命令启停、状态查看操作
“`powershell
cd D:\fgedudb\pgsql18\bin

#启动数据库实例
.\pg_ctl.exe start -D D:\fgedudb\fgedudb_data

#重新加载配置(修改pg_hba.conf可以reload,不需要重启)
.\pg_ctl.exe reload -D D:\fgedudb\fgedudb_data

#停止数据库,smart优雅关闭,等待会话结束
.\pg_ctl.exe stop -D D:\fgedudb\fgedudb_data -m smart

#快速关闭
.\pg_ctl.exe stop -D D:\fgedudb\fgedudb_data -m fast

#查看实例运行状态
.\pg_ctl.exe status -D D:\fgedudb\fgedudb_data
“`
也可以直接在services.msc图形界面鼠标右键完成启动停止。

> 网上搜索风哥教程可以学习全套数据库教程

### 3.7 psql命令行登录,创建业务库fgedudb、业务用户fgedu
打开PowerShell,执行psql登录超级用户postgres:
“`powershell
cd D:\fgedudb\pgsql18\bin
.\psql.exe -U postgres -h 127.0.0.1 -p 5432
“`
输入初始化设置postgres超级用户密码,进入`postgres=#`交互提示符。

执行SQL,创建业务数据库`fgedudb`,业务用户`fgedu`:
“`sql
–创建业务用户fgedu
CREATE USER fgedu WITH PASSWORD ‘Fg@123456’;

–创建业务数据库fgedudb,指定所有者
CREATE DATABASE fgedudb OWNER fgedu ENCODING ‘UTF8’ LC_COLLATE ‘zh‑CN’ LC_CTYPE ‘zh‑CN’;

–授权
GRANT ALL PRIVILEGES ON DATABASE fgedudb TO fgedu;

–切换到业务库
\c fgedudb fgedu

–查看现有数据库列表
\l

–查看现有角色用户
\du
“`
输入`\q`退出psql命令行。

## 4 方式二:Installer图形化EXE安装包部署PostgreSQL(主机fgedu‑net‑cn2)
> 实验主机`fgedu‑net‑cn2`,Windows Server,硬件规格64G内存8CPU;使用EDB提供EXE Installer图形向导安装。

### 4.1 EXE安装向导完整步骤实操
1. 右键exe安装包,选择以管理员身份运行;弹出安装向导,点击Next下一步。
2. **选择安装目录**:不要默认C盘,修改程序目录为`D:\fgedudb\pgsql18`。
3. **数据目录**:修改数据目录`D:\fgedudb\fgedudb_data`。
4. 设置超级用户postgres密码,记录保存密码。
5. 端口保持默认5432,如端口占用修改为5433。
6. 区域语言选择中文简体`zh‑CN`。
7. 组件选择:勾选PostgreSQL Server、pgAdmin4、Command‑Line Tools;取消勾选Stack Builder。
8. 下一步执行安装,等待向导完成。
9. 安装完成,取消勾选Launch Stack Builder,点击Finish结束向导。

> 安装向导完成,自动注册Windows服务,服务名称类似postgresql‑x64‑18。

### 4.2 安装完成后修改核心配置文件
EXE安装之后数据目录在`D:\fgedudb\fgedudb_data`,编辑postgresql.conf,同样使用64G内存8CPU参数模板,和3.3章节配置内容完全一致。
修改pg_hba.conf访问认证,调整IP白名单,保存配置文件。

### 4.3 Windows服务管理,启停与自启调整
Win+R输入`services.msc`,找到postgresql‑x64‑18服务:
– 右键:启动、停止、重启;
– 属性里面调整启动类型:自动/手动/禁用。

修改完pg_hba.conf之后,不需要重启实例,执行reload生效。
进入bin目录执行pg_ctl reload:
“`powershell
cd D:\fgedudb\pgsql18\bin
.\pg_ctl.exe reload -D D:\fgedudb\fgedudb_data
“`

> 上51CTO搜索风哥可以学习全套数据库教程

### 4.4 psql命令行连接验证,库与账号创建
“`powershell
cd D:\fgedudb\pgsql18\bin
.\psql.exe -U postgres -h 127.0.0.1 -p 5432
“`
执行同样SQL创建业务库`fgedudb`,业务账号`fgedu`:
“`sql
CREATE USER fgedu WITH PASSWORD ‘Fg@123456’;
CREATE DATABASE fgedudb OWNER fgedu ENCODING ‘UTF8’;
GRANT ALL PRIVILEGES ON DATABASE fgedudb TO fgedu;
\l
\du
\q
“`

## 5 PostgreSQL数据库基础使用实战
### 5.1 psql命令行常用元命令实操
psql元命令以反斜杠`\`开头,Windows平台ZIP包、EXE包全部通用,连接进入数据库之后执行:
“`psql
\l –列出所有数据库
\du –列出所有用户角色
\c fgedudb –切换数据库fgedudb
\dt –列出当前库全部数据表
\d 表名 –查看表结构
\i 文件路径 –执行外部SQL脚本文件
\q –退出psql
\x –打开横向展示模式,适合长字段查看
\h SELECT –查看SQL语法帮助
“`

### 5.2 业务库、schema、表基础CRUD实操
使用fgedu账号登录业务库fgedudb:
“`powershell
cd D:\fgedudb\pgsql18\bin
.\psql.exe -U fgedu -h 127.0.0.1 -d fgedudb -p 5432
“`
执行建表、增删改查测试SQL:
“`sql
–创建业务测试表
CREATE TABLE fg_user(
id BIGSERIAL PRIMARY KEY,
user_name VARCHAR(64) NOT NULL,
phone VARCHAR(20),
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

–插入测试数据
INSERT INTO fg_user(user_name,phone) VALUES
(‘zhangsan’,’13800138000′),
(‘lisi’,’13900139000′);

–查询
SELECT * FROM fg_user;

–更新
UPDATE fg_user SET phone=’13800138999′ WHERE id=1;

–删除
DELETE FROM fg_user WHERE id=2;
“`

> 风哥数据库教程 itpux‑com

### 5.3 pgAdmin 4图形化管理工具安装配置、连接实例
> ZIP压缩包版本没有自带pgAdmin,需要独立下载pgAdmin4安装;EXE安装包已经自带pgAdmin4。

1. 启动pgAdmin4,首次打开设置pgAdmin主密码,用于保存连接密码。
2. 点击「Add New Server」新建数据库连接:
– 名称:`fgedudb‑pg18`
– Host name/address:`127.0.0.1`或者主机名`fgedu‑net‑cn1`
– Port:`5432`
– Maintenance database:`postgres`
– Username:`postgres`
– Password:初始化设置超级用户密码
3. 保存连接,即可图形浏览数据库、表、执行SQL查询。

### 5.4 日志查看、基础系统视图查询
PostgreSQL日志文件路径配置在postgresql.conf中`log_directory = ‘D:/fgedudb/log’`,直接打开log目录下面日志文件排查启动报错、SQL报错。

psql内查询系统视图,查看实例状态:
“`sql
–查看实例版本
SELECT version();

–查看数据库配置参数
SELECT name,setting FROM pg_settings ORDER BY name;

–查看当前会话连接
SELECT pid,usename,datname,state,query FROM pg_stat_activity;
“`

## 6 Windows平台PostgreSQL卸载完整流程实战
### 6.1 ZIP压缩包版本卸载(取消服务注册、清理目录)
> ZIP二进制版本卸载,优先取消Windows服务注册,之后删除数据目录与程序目录。
管理员PowerShell执行:
“`powershell
cd D:\fgedudb\pgsql18\bin
#取消注册Windows服务
.\pg_ctl.exe unregister -N “PostgreSQL‑18‑fgedudb”
“`
提示服务取消注册成功;
停止所有psql、pgAdmin程序,之后直接删除整个根目录文件夹`D:\fgedudb`。
> ⚠️卸载前确认备份数据目录,删除目录数据会全部丢失。

### 6.2 Installer EXE版本卸载(程序卸载+残留目录清理)
1. Windows 设置 → 应用,找到 PostgreSQL 18,点击卸载,运行卸载向导。
2. 向导卸载完成,程序文件会删除;**数据目录默认不会自动删除**。
3. 如果需要彻底清理,确认已经备份数据,手动删除`D:\fgedudb\fgedudb_data`数据目录。
4. 打开services.msc确认postgresql‑x64‑18服务已经消失。

> 注意:EXE卸载不会自动删除数据目录,防止误删业务数据,需要手动确认删除。

## 7 Windows平台PostgreSQL常见故障排查
### 7.1 initdb初始化失败权限不足
**现象**:执行initdb报错,permission denied,无法创建目录文件。
**根因**:没有以管理员身份运行CMD/PowerShell;目标文件夹权限不足。
**解决方案**:右键PowerShell选择「以管理员身份运行」;检查上级文件夹权限,确保当前账号完全读写权限。

### 7.2 pg_ctl启动失败,pid文件残留
**现象**:pg_ctl start启动失败,提示`postmaster.pid`已经存在。
**根因**:上一次数据库异常崩溃,没有正常stop,数据目录残留postmaster.pid文件。
> 不要直接手动删除pid文件,确认进程确实不存在才可以删除。
排查步骤:
1. Windows任务管理器确认没有postgres.exe进程在运行;
2. 确认无postgres进程之后,可以删除`D:\fgedudb\fgedudb_data\postmaster.pid`;
3. 重新执行pg_ctl start启动实例。

### 7.3 本地可以登录,远程无法访问
排查顺序:
1. postgresql.conf参数`listen_addresses`,必须监听对外IP,不能只写localhost。
2. pg_hba.conf没有添加远程主机IP的访问规则。
3. Windows防火墙5432端口没有入站放行规则。
4. 确认服务已经重启/reload配置。

### 7.4 psql命令无法识别,环境变量PATH配置问题
现象:powershell提示’psql.exe’ 不是内部或外部命令。
两种解决办法:
1. 完整cd进入bin目录再执行命令;
2. Windows系统环境变量PATH,新增`D:\fgedudb\pgsql18\bin`,保存,重启PowerShell终端。

### 7.5 中文乱码,字符集locale配置错误
现象:插入中文数据查询显示乱码问号。
根因:initdb初始化的时候没有指定‑E UTF8,数据库集群编码不是UTF‑8。
> 数据库集群编码初始化之后**不能直接修改**,只能备份数据,删除数据目录,重新initdb指定UTF‑8初始化,再导入备份数据。

## 8 风哥针对本文总结
风哥教程本文完整讲解Windows平台PostgreSQL全套部署与基础运维,区分两套独立实验主机`fgedu‑net‑cn1`(ZIP二进制压缩包部署)、`fgedu‑net‑cn2`(EXE Installer图形安装包部署),硬件规格全部64G内存8CPU,统一使用目录`D:\fgedudb`,业务数据库`fgedudb`,业务账号`fgedu`。

核心要点梳理:
1. Windows部署PostgreSQL前期项目规划不可省略,包含硬件评估、目录分离规划、端口、账号安全、防火墙、备份策略;ZIP二进制包自由度高适合DBA运维批量部署;EXE图形向导适合开发测试快速部署,两套介质内核功能无差异。
2. PostgreSQL三个核心配置文件:`postgresql.conf`控制实例内存、连接、日志;`pg_hba.conf`控制IP访问认证,reload即可生效,无需重启;`pg_ident.conf`用户映射。64G内存Windows平台shared_buffers不建议超过16GB,Windows系统内存管理机制和Linux有差异,不能照搬Linux大内存参数。
3. ZIP包必须使用`initdb`完成数据库集群初始化,初始化必须管理员权限;ZIP包不会自动注册Windows服务,使用`pg_ctl register/unregister`完成服务注册与注销;EXE安装向导自动注册Windows系统服务。
4. pg_ctl工具负责实例启停、reload重载配置;修改pg_hba.conf访问规则优先使用reload,不需要停机重启;只有修改postgresql.conf部分静态参数才需要重启实例。
5. psql是PostgreSQL原生命令行客户端,反斜杠`\`元命令快速管理库、用户、表;pgAdmin4为图形化管理工具,ZIP包版本需要独立下载安装,EXE安装包自带pgAdmin4。
6. 卸载注意事项:ZIP包先取消Windows服务注册,再删除目录;EXE向导卸载不会删除数据目录,业务数据需要提前手动备份,再手动清理残留数据文件夹。
7. Windows平台高频故障点:权限不足(管理员运行终端)、pid文件异常残留、远程访问失败三要素(listen_addresses、pg_hba.conf、防火墙)、psql命令未加入PATH环境变量;数据库集群字符集初始化完成后不可原地修改,需要重建集群导入备份。

Windows平台运行PostgreSQL适合开发测试场景,生产关键业务优先评估Linux平台部署;无论任何平台,部署完成之后都必须完成备份验证,备份文件要做恢复演练,保证故障时数据可以正常恢复。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息