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 成功连接并看到数据库列表。
相关推荐
[纳川]2 小时前
Alibaba Cloud Linux 4或者 CentOS 9 无法秘钥登录
linux·运维·centos
信鸽爱好者2 小时前
RTX5060显卡+windows CUDA12.8+cuDNN8.9.7+pytorch安装
人工智能·pytorch·windows·深度学习
炸炸鱼.2 小时前
Nginx 性能调优与深度监控实战指南
运维·nginx
FriendshipT2 小时前
Ultralytics Docker 安装使用教程(以训练 YOLO26 模型为例)
linux·运维·人工智能·目标检测·ubuntu·docker·容器
2301_816374332 小时前
AutoBackupGuard 多服务器自动化备份与完整性校验系统
linux·运维·服务器·centos·自动化·github
安科瑞小许2 小时前
零碳园区的电力保障——变电站综合自动化系统
运维·自动化·零碳园区
袁小皮皮不皮2 小时前
【HCIA】第二章 ipv4协议以及子网划分与集合
linux·运维·服务器·网络·网络协议·tcp/ip·信息与通信
暴力求解2 小时前
Linux---ELF动态库加载
linux·运维·服务器
亮子AI2 小时前
【PostgreSQL】如何清空数据库?
数据库·postgresql·oracle