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

举报
风哥数据库教程 发表于 2026/09/15 11:22:07 2026/09/15
【摘要】 数据库教程FGMT46‑PG-Win平台PostgreSQL安装配置与管理入门 Windows平台PostgreSQL18安装配置与管理入门 前言本套风哥教程面向数据库工程师、DBA、IT运维人员、数据库架构师、大数据工程师,完整讲解Windows平台PostgreSQL全套部署与基础管理知识。风哥教程本文分为理论原理与实战操作两大模块,理论部分包含项目规划、环境评估、两种安装方式原理差异、...

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

Windows平台PostgreSQL18安装配置与管理入门

前言

本套风哥教程面向数据库工程师、DBA、IT运维人员、数据库架构师、大数据工程师,完整讲解Windows平台PostgreSQL全套部署与基础管理知识。风哥教程本文分为理论原理与实战操作两大模块,理论部分包含项目规划、环境评估、两种安装方式原理差异、核心配置文件解析;实战部分基于Windows主机fgedu‑net‑cn1fgedu‑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管理员模式执行)

# 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管理员执行:

# 创建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目录:

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,安全生产模式

执行初始化命令:

.\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,修改核心参数:

#连接配置
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,配置访问白名单,示例允许本机与内网网段访问:

#本地本机访问
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

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命令启停、状态查看操作

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:

cd D:\fgedudb\pgsql18\bin
.\psql.exe -U postgres -h 127.0.0.1 -p 5432

输入初始化设置postgres超级用户密码,进入postgres=#交互提示符。

执行SQL,创建业务数据库fgedudb,业务用户fgedu

--创建业务用户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:

cd D:\fgedudb\pgsql18\bin
.\pg_ctl.exe reload -D D:\fgedudb\fgedudb_data

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

4.4 psql命令行连接验证,库与账号创建

cd D:\fgedudb\pgsql18\bin
.\psql.exe -U postgres -h 127.0.0.1 -p 5432

执行同样SQL创建业务库fgedudb,业务账号fgedu

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包全部通用,连接进入数据库之后执行:

\l        --列出所有数据库
\du       --列出所有用户角色
\c fgedudb --切换数据库fgedudb
\dt       --列出当前库全部数据表
\d 表名    --查看表结构
\i 文件路径 --执行外部SQL脚本文件
\q        --退出psql
\x        --打开横向展示模式,适合长字段查看
\h SELECT --查看SQL语法帮助

5.2 业务库、schema、表基础CRUD实操

使用fgedu账号登录业务库fgedudb:

cd D:\fgedudb\pgsql18\bin
.\psql.exe -U fgedu -h 127.0.0.1 -d fgedudb -p 5432

执行建表、增删改查测试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内查询系统视图,查看实例状态:

--查看实例版本
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执行:

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平台部署;无论任何平台,部署完成之后都必须完成备份验证,备份文件要做恢复演练,保证故障时数据可以正常恢复。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。