数据库教程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;生产环境部署前,需要完成备份策略、权限规划、端口防火墙规划。
网上搜索风哥教程可以学习全套数据库教程
目录
- 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权限与安全注意事项 - PostgreSQL软件下载与环境准备实战
2.1 PostgreSQL官方介质下载渠道说明
2.2 Windows系统环境前置检查(磁盘、端口、权限、防火墙)
2.3 目录规划,统一使用/fgedudb目录规范 - 方式一: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 - 方式二:Installer图形化EXE安装包部署PostgreSQL(主机fgedu‑net‑cn2)
4.1 EXE安装向导完整步骤实操
4.2 安装完成后修改核心配置文件
4.3 Windows服务管理,启停与自启调整
4.4 psql命令行连接验证,库与账号创建 - PostgreSQL数据库基础使用实战
5.1 psql命令行常用元命令实操
5.2 业务库、schema、表基础CRUD实操
5.3 pgAdmin 4图形化管理工具安装配置、连接实例
5.4 日志查看、基础系统视图查询 - Windows平台PostgreSQL卸载完整流程实战
6.1 ZIP压缩包版本卸载(取消服务注册、清理目录)
6.2 Installer EXE版本卸载(程序卸载+残留目录清理) - Windows平台PostgreSQL常见故障排查
7.1 initdb初始化失败权限不足
7.2 pg_ctl启动失败,pid文件残留
7.3 本地可以登录,远程无法访问
7.4 psql命令无法识别,环境变量PATH配置问题
7.5 中文乱码,字符集locale配置错误 - 风哥针对本文总结
1 Windows平台PostgreSQL项目规划理论
风哥 itpux‑com
1.1 Windows平台PostgreSQL项目前期规划要点
在Windows环境部署PostgreSQL,不能直接下载介质直接安装,需要提前完成项目规划,规划要点包含如下内容:
- 硬件资源规划:确认服务器内存、CPU、磁盘IO能力,区分开发测试环境与生产业务环境;本文统一硬件规格64G内存,8CPU。
- 目录规划:二进制程序目录、数据目录、日志目录相互分离,不要放在系统盘
C:\,本教程统一根目录/fgedudb,Windows实际路径为D:\fgedudb;数据目录、日志目录独立,便于后期备份、扩容。 - 端口规划:默认端口5432,如果单机部署多套PostgreSQL实例,需要规划不同TCP端口,避免端口冲突。
- 账号安全规划:超级用户postgres密码复杂度,业务普通账号权限最小化,远程访问IP白名单规划。
- 防火墙规划:Windows防火墙放行数据库TCP端口,生产环境限制访问来源IP,禁止全网0.0.0.0无限制访问。
- 备份策略规划:部署同时确定备份方案,pg_dump逻辑备份、pg_basebackup物理备份,定时备份任务。
- 服务启动模式规划:是否配置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运维的核心对象:
- postgresql.conf:实例主参数配置文件,内存、连接数、WAL日志、并行、日志全部在此配置;修改之后需要reload或者重启数据库生效。
- pg_hba.conf:主机认证访问控制文件,控制哪些IP、哪些用户可以连接数据库,认证方式(md5/scram‑sha‑256/trust);reload即可生效,不需要重启实例。
- 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服务器的核心参数理论说明:
shared_buffers:共享缓冲池,Windows平台官方建议设置物理内存25%,64G内存设置16G;Windows不建议超过16G。effective_cache_size:规划的操作系统文件缓存,设置物理内存50%,64G设置32G;给查询优化器评估IO代价。work_mem:每个排序、哈希操作单会话内存,设置64MB;并发会话多的时候不要盲目调大,防止内存耗尽。maintenance_work_mem:vacuum、create index维护操作内存,设置2GB。max_connections:最大连接数,设置300;大量并发业务建议搭配pgBouncer连接池。max_worker_processes:后台进程最大数量,8CPU设置16;并行查询相关参数配套调整。listen_addresses:监听地址,生产环境不要写*,按需填写IP。wal_buffers:WAL日志缓冲,自动即可。
上51CTO搜索风哥可以学习全套数据库教程
1.7 Windows平台PostgreSQL权限与安全注意事项
- 不要使用trust信任认证模式用于生产,优先使用
scram‑sha‑256密码认证;trust模式不需要密码直接登录,风险极高。 - pg_hba.conf严格限制来源IP,禁止
0.0.0.0/0全网访问。 - 数据目录文件夹权限收紧,不要开放Everyone全部权限,只给PostgreSQL服务账号读写权限。
- 超级用户postgres日常业务不要使用,业务使用普通业务账号fgedu。
- Windows防火墙限制5432端口访问来源,不要直接对公网全部开放端口。
2 PostgreSQL软件下载与环境准备实战
2.1 PostgreSQL官方介质下载渠道说明
PostgreSQL Windows二进制介质由EDB企业提供,两类介质下载位置:
- ZIP Archive压缩包:PostgreSQL‑18.x‑windows‑x64‑binaries.zip,只有二进制程序,无图形安装向导。
- 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
参数说明:
-NWindows服务名称-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安装向导完整步骤实操
- 右键exe安装包,选择以管理员身份运行;弹出安装向导,点击Next下一步。
- 选择安装目录:不要默认C盘,修改程序目录为
D:\fgedudb\pgsql18。 - 数据目录:修改数据目录
D:\fgedudb\fgedudb_data。 - 设置超级用户postgres密码,记录保存密码。
- 端口保持默认5432,如端口占用修改为5433。
- 区域语言选择中文简体
zh‑CN。 - 组件选择:勾选PostgreSQL Server、pgAdmin4、Command‑Line Tools;取消勾选Stack Builder。
- 下一步执行安装,等待向导完成。
- 安装完成,取消勾选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。
- 启动pgAdmin4,首次打开设置pgAdmin主密码,用于保存连接密码。
- 点击「Add New Server」新建数据库连接:
- 名称:
fgedudb‑pg18 - Host name/address:
127.0.0.1或者主机名fgedu‑net‑cn1 - Port:
5432 - Maintenance database:
postgres - Username:
postgres - Password:初始化设置超级用户密码
- 名称:
- 保存连接,即可图形浏览数据库、表、执行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版本卸载(程序卸载+残留目录清理)
- Windows 设置 → 应用,找到 PostgreSQL 18,点击卸载,运行卸载向导。
- 向导卸载完成,程序文件会删除;数据目录默认不会自动删除。
- 如果需要彻底清理,确认已经备份数据,手动删除
D:\fgedudb\fgedudb_data数据目录。 - 打开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文件,确认进程确实不存在才可以删除。
排查步骤:
- Windows任务管理器确认没有postgres.exe进程在运行;
- 确认无postgres进程之后,可以删除
D:\fgedudb\fgedudb_data\postmaster.pid; - 重新执行pg_ctl start启动实例。
7.3 本地可以登录,远程无法访问
排查顺序:
- postgresql.conf参数
listen_addresses,必须监听对外IP,不能只写localhost。 - pg_hba.conf没有添加远程主机IP的访问规则。
- Windows防火墙5432端口没有入站放行规则。
- 确认服务已经重启/reload配置。
7.4 psql命令无法识别,环境变量PATH配置问题
现象:powershell提示’psql.exe’ 不是内部或外部命令。
两种解决办法:
- 完整cd进入bin目录再执行命令;
- 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。
核心要点梳理:
- Windows部署PostgreSQL前期项目规划不可省略,包含硬件评估、目录分离规划、端口、账号安全、防火墙、备份策略;ZIP二进制包自由度高适合DBA运维批量部署;EXE图形向导适合开发测试快速部署,两套介质内核功能无差异。
- PostgreSQL三个核心配置文件:
postgresql.conf控制实例内存、连接、日志;pg_hba.conf控制IP访问认证,reload即可生效,无需重启;pg_ident.conf用户映射。64G内存Windows平台shared_buffers不建议超过16GB,Windows系统内存管理机制和Linux有差异,不能照搬Linux大内存参数。 - ZIP包必须使用
initdb完成数据库集群初始化,初始化必须管理员权限;ZIP包不会自动注册Windows服务,使用pg_ctl register/unregister完成服务注册与注销;EXE安装向导自动注册Windows系统服务。 - pg_ctl工具负责实例启停、reload重载配置;修改pg_hba.conf访问规则优先使用reload,不需要停机重启;只有修改postgresql.conf部分静态参数才需要重启实例。
- psql是PostgreSQL原生命令行客户端,反斜杠
\元命令快速管理库、用户、表;pgAdmin4为图形化管理工具,ZIP包版本需要独立下载安装,EXE安装包自带pgAdmin4。 - 卸载注意事项:ZIP包先取消Windows服务注册,再删除目录;EXE向导卸载不会删除数据目录,业务数据需要提前手动备份,再手动清理残留数据文件夹。
- Windows平台高频故障点:权限不足(管理员运行终端)、pid文件异常残留、远程访问失败三要素(listen_addresses、pg_hba.conf、防火墙)、psql命令未加入PATH环境变量;数据库集群字符集初始化完成后不可原地修改,需要重建集群导入备份。
Windows平台运行PostgreSQL适合开发测试场景,生产关键业务优先评估Linux平台部署;无论任何平台,部署完成之后都必须完成备份验证,备份文件要做恢复演练,保证故障时数据可以正常恢复。
- 点赞
- 收藏
- 关注作者
评论(0)