PostgreSQL 18 本地部署与运维完全指南 (Windows版)

文章目录

  • [📘 PostgreSQL 18 本地部署与运维完全指南 (Windows版)](#📘 PostgreSQL 18 本地部署与运维完全指南 (Windows版))
    • [📋 第一阶段:下载与初始化安装](#📋 第一阶段:下载与初始化安装)
      • [1. 下载安装包](#1. 下载安装包)
      • [2. 运行安装向导](#2. 运行安装向导)
    • [⚙️ 第二阶段:配置环境变量 (可选但推荐)](#⚙️ 第二阶段:配置环境变量 (可选但推荐))
    • [🛠️ 第三阶段:注册服务与开机自启 (核心步骤)](#🛠️ 第三阶段:注册服务与开机自启 (核心步骤))
      • [1. 以管理员身份打开 CMD](#1. 以管理员身份打开 CMD)
      • [2. 进入 bin 目录](#2. 进入 bin 目录)
      • [3. 注册 Windows 服务](#3. 注册 Windows 服务)
      • [4. 设置开机自启并启动服务](#4. 设置开机自启并启动服务)
      • [5. 验证状态](#5. 验证状态)
    • [🔌 第四阶段:连接测试 (Navicat & 命令行)](#🔌 第四阶段:连接测试 (Navicat & 命令行))
      • [1. 命令行连接测试](#1. 命令行连接测试)
      • [2. Navicat 连接配置](#2. Navicat 连接配置)
    • [🆘 第五阶段:常见运维命令速查](#🆘 第五阶段:常见运维命令速查)
    • [⚠️ 故障排查 (Troubleshooting)](#⚠️ 故障排查 (Troubleshooting))
      • [问题 1:Navicat 连接报错 "no pg_hba.conf entry"](#问题 1:Navicat 连接报错 "no pg_hba.conf entry")
      • [问题 2:忘记密码](#问题 2:忘记密码)
      • [问题 3:服务无法启动](#问题 3:服务无法启动)
    • [✅ 部署完成检查清单](#✅ 部署完成检查清单)

📘 PostgreSQL 18 本地部署与运维完全指南 (Windows版)

适用版本 :PostgreSQL 18 (Windows x64)
安装路径D:\pgsql
数据目录D:\pgsql\data
默认端口5432
超级用户postgres
预设密码123456 (生产环境请修改!)


📋 第一阶段:下载与初始化安装

1. 下载安装包

2. 运行安装向导

双击安装包,按以下步骤操作:

  1. Installation Directory (安装目录) :
    • 点击 Browse,修改为:D:\pgsql
    • (建议不要安装在 C 盘,避免系统盘空间不足)
  2. Select Components (选择组件) :
    • 全选默认即可 (PostgreSQL Server, pgAdmin 4, Command Line Tools, Stack Builder)。
  3. Data Directory (数据目录) :
    • 保持默认 (会自动设为 D:\pgsql\data)。
  4. Password (设置密码) :
    • 输入超级用户 postgres 的密码:123456
    • ⚠️ 重要:请务必记牢此密码,后续所有连接都依赖它。
  5. Port (端口) :
    • 保持默认:5432
  6. Locale (区域设置) :
    • 保持默认 Default locale (通常对应系统语言)。
  7. 完成安装 :
    • 取消勾选 "Stack Builder" (除非你需要额外插件),点击 Finish

⚙️ 第二阶段:配置环境变量 (可选但推荐)

为了能在任意 CMD 窗口直接使用 psql, pg_ctl 等命令,需配置环境变量。

  1. 右键"此电脑" -> "属性" -> "高级系统设置" -> "环境变量"。

  2. 系统变量 中找到 Path,点击"编辑"。

  3. 点击"新建",添加路径:

    text 复制代码
    D:\pgsql\bin
  4. 连续点击"确定"保存。

  5. 验证 :打开一个新的 CMD 窗口,输入 psql --version,若显示版本号则成功。


🛠️ 第三阶段:注册服务与开机自启 (核心步骤)

默认安装可能未将数据库注册为"自动启动"的 Windows 服务,需手动执行以确保重启后自动运行。

1. 以管理员身份打开 CMD

  • 搜索 cmd,右键选择 "以管理员身份运行"

2. 进入 bin 目录

cmd 复制代码
cd /d D:\pgsql\bin

3. 注册 Windows 服务

执行以下命令(服务名设为 PostgreSQL-18):

cmd 复制代码
pg_ctl register -N "PostgreSQL-18" -D "D:\pgsql\data"
  • 成功标志 :屏幕显示 Service registered successfully
  • 注:-N 指定服务名,-D 指定数据目录。

4. 设置开机自启并启动服务

cmd 复制代码
:: 设置为自动启动
sc config PostgreSQL-18 start= auto

:: 立即启动服务
net start PostgreSQL-18
  • 成功标志 :显示 PostgreSQL-18 服务正在启动 . . . . . PostgreSQL-18 服务已经启动成功。

5. 验证状态

输入以下命令确认状态:

cmd 复制代码
sc qc PostgreSQL-18

检查输出中是否包含:START_TYPE : 2 AUTO_STARTSTATE : 4 RUNNING


🔌 第四阶段:连接测试 (Navicat & 命令行)

1. 命令行连接测试

在任意 CMD 窗口输入:

cmd 复制代码
psql -U postgres -h localhost
  • 输入密码:123456 (输入时不显示字符,输完回车)。
  • 出现 postgres=# 提示符即表示成功。
  • 退出输入:\q

打开 Navicat for PostgreSQL,新建连接:

  • 连接名 : Local_PG
  • 主机 : localhost (或 127.0.0.1)
  • 端口 : 5432
  • 初始数据库 : postgres
  • 用户名 : postgres
  • 密码 : 123456
  • 点击 "测试连接" ,显示 Connection successful 后保存。

🆘 第五阶段:常见运维命令速查

将以下命令保存在备忘录中,日常维护必备。

场景 命令 (需在管理员 CMD 执行) 说明
启动服务 net start PostgreSQL-18 手动启动数据库
停止服务 net stop PostgreSQL-18 手动停止数据库
重启服务 net stop PostgreSQL-18 net start PostgreSQL-18 修改配置后需重启
查看状态 sc query PostgreSQL-18 查看是否运行中
卸载服务 pg_ctl unregister -N "PostgreSQL-18" -D "D:\pgsql\data" 慎用:移除开机自启和服务注册
修改密码 psql -U postgres -c "ALTER USER postgres WITH PASSWORD '新密码';" 在 psql 中执行或登录后执行

⚠️ 故障排查 (Troubleshooting)

问题 1:Navicat 连接报错 "no pg_hba.conf entry"

原因 :配置文件禁止了 TCP/IP 连接。
解决

  1. 编辑文件:D:\pgsql\data\pg_hba.conf

  2. 在文件末尾添加:

    text 复制代码
    host    all             all             127.0.0.1/32            scram-sha-256
    host    all             all             ::1/128                 scram-sha-256
  3. 重启服务net stop PostgreSQL-18 && net start PostgreSQL-18

问题 2:忘记密码

解决

  1. 停止服务:net stop PostgreSQL-18
  2. 临时修改 D:\pgsql\data\pg_hba.conf,将 scram-sha-256 改为 trust (允许无密码登录)。
  3. 启动服务:net start PostgreSQL-18
  4. 登录并修改密码:psql -U postgres -> ALTER USER postgres WITH PASSWORD '123456';
  5. 重要 :改回 pg_hba.confscram-sha-256 并重启服务,恢复安全性。

问题 3:服务无法启动

检查

  1. 查看日志文件:D:\pgsql\data\logfile (或你在注册时指定的日志路径)。
  2. 检查端口占用:netstat -ano | findstr 5432,看是否有其他程序占用了 5432 端口。

✅ 部署完成检查清单

在交付或使用前,请确认以下三点:

  • 服务 PostgreSQL-18services.msc 中状态为 "正在运行" 且启动类型为 "自动"
  • 能够使用 psql -U postgres 在命令行成功登录。
  • 能够使用 Navicat 通过 localhost:5432 成功连接并看到数据库列表。
相关推荐
小职boy几秒前
不忘初心Windows系统工具箱下载 - 系统优化与维护工具(v1.1)
windows·系统·电脑软件·工具箱
RisunJan1 小时前
Linux命令-rlogin(远程登录)
linux·运维
深圳恒讯2 小时前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
Mininglamp_27182 小时前
Claude Code 封禁中国开发者之后:本地 AI 编程工具的替代方案实测
开发语言·人工智能·windows·开源软件·ai-native
蓝天下的守望者2 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
小林ixn2 小时前
从“玩具工具”到“跨语言利器”:MCP 协议实战解析
运维·服务器·网络
贾斯汀frank2 小时前
C# 15 类型系统改进:Union Types
开发语言·windows·c#
小顿的企业观察3 小时前
中企出海战略规划,正在从“走出去”转向“走进去”
大数据·运维·人工智能·产品运营·制造
数智化转型推荐官3 小时前
2026统一身份管理系统五大发展趋势解读
java·运维·微服务
看菜鸡互3 小时前
探索用 SlideML 让大模型生成 PPT 的实验方法
java·运维