Windows 10 安装 PostgreSQL 9.6.24 完整教程

1. 引言

本文将详细介绍如何在 Windows 10 系统上安装 PostgreSQL 9.6.24 的二进制版本。适用于老项目

2. 下载安装包

首先,我们需要下载 PostgreSQL 9.6.24 的 Windows 二进制安装包。官方下载地址为:

复制代码
https://get.enterprisedb.com/postgresql/postgresql-9.6.24-1-windows-x64-binaries.zip

这是一个 ZIP 压缩包,包含 PostgreSQL 的二进制文件,无需安装程序即可使用,适合绿色部署或自定义安装路径的场景。

3. 解压与目录规划

3.1 解压安装包

将下载的 ZIP 文件解压到你希望安装 PostgreSQL 的目录。建议使用一个不含空格和中文的路径。解压后,你会看到以下目录结构:

复制代码
pgsql/
├── bin/          # 可执行文件
├── include/      # 头文件
├── lib/          # 动态链接库
├── share/        # 共享文件
└── ...

3.2 验证解压结果

打开命令提示符(CMD),进入解压目录的 bin 文件夹,验证 PostgreSQL 是否可执行:

cmd 复制代码
# 进入D:\develop\PostgreSQL\9.6\bin
postgres --version

如果输出类似 postgres (PostgreSQL) 9.6.24 的信息,说明解压成功。

4. 初始化数据库

使用 initdb 命令初始化数据库集群。在 bin 目录下执行:

cmd 复制代码
initdb.exe -D D:\develop\PostgreSQL\9.6\data -U postgres -E UTF8 -A password -W

参数说明:

  • -D:指定数据目录
  • -U:指定超级用户名
  • -E:指定编码格式
  • --locale:指定区域设置

初始化成功后,会提示数据库集群创建完成。

执行过程示例

复制代码
为新数据库集簇输入新的超级用户口令:
再次输入口令:

输入你想要的密码(输入时屏幕不显示星号,正常现象)。

5. 启动 PostgreSQL 服务

5.1 手动启动

在 bin 目录下执行以下命令启动 PostgreSQL:

cmd 复制代码
pg_ctl.exe start -D D:\develop\PostgreSQL\9.6\data

5.2 注册为 Windows 服务

为了方便管理,建议将 PostgreSQL 注册为 Windows 服务,使其开机自动启动:

cmd 复制代码
pg_ctl.exe register -N "PostgreSQL96" -D D:\develop\PostgreSQL\9.6\data

参数说明:

  • -N:服务名称
  • -D:数据目录
  • -S:启动类型(auto 表示自动启动)

注册成功后,可以通过 Windows 服务管理器(services.msc)查看和启动该服务。

6. 连接测试

6.1 使用 psql 连接

打开一个新的命令提示符,进入 bin 目录,使用 psql 客户端连接数据库:

cmd 复制代码
psql -h 127.0.0.1 -p 5432 -U postgres

系统会提示输入密码登录。

6.2 验证数据库信息

登录成功后,执行以下 SQL 命令验证数据库版本:

sql 复制代码
SELECT version();

输出应包含 PostgreSQL 9.6.24 的版本信息。

7. 常用管理命令

cmd 复制代码
# 停止数据库
pg_ctl.exe stop -D D:\develop\PostgreSQL\9.6\data

# 查看状态
pg_ctl.exe status -D D:\develop\PostgreSQL\9.6\data

# 删除服务
pg_ctl unregister -N "PostgreSQL96"

8. 下载DBeaver

8.1 下载

官方下载地址

8.2 更换 DBeaver 的 Maven 源(国内阿里云镜像)

  1. 顶部菜单:窗口 → 首选项(Preferences)

  2. 展开:连接 → 驱动 → Maven

  3. 点【添加】,填入阿里云 maven 地址:

    https://maven.aliyun.com/repository/public

  4. 选中新加的阿里云源,点【向上】放到列表最顶部(优先使用)

  5. 关闭DBeaver,重新打开

9. 连接Postgresql

9.1 连接数据库

9.2 连接postgres数据库

sql 复制代码
-- 创建用户 pgsqldb1,设置密码
CREATE USER pgsqldb1 WITH PASSWORD '你的密码';

-- 如果存在先删库
DROP DATABASE IF EXISTS pgsqldb1;

-- 创建数据库 pgsqldb1,并指定所有者为 pgsqldb1
CREATE DATABASE pgsqldb1 OWNER pgsqldb1 ENCODING 'UTF8';

-- 授予连接权限(可选,一般需要)
GRANT CONNECT ON DATABASE pgsqldb1 TO pgsqldb1;

-- 确认用户拥有登录权限(CREATE USER 默认带 LOGIN,保险执行)
ALTER ROLE pgsqldb1 WITH LOGIN;

9.3 连接pgsqldb1数据库

sql 复制代码
-- public schema授权
GRANT ALL PRIVILEGES ON SCHEMA public TO pgsqldb1;
-- 把后续新建表/序列的默认权限也给这个用户
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO pgsqldb1;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO pgsqldb1;

10. 坑

路径 D:\develop\PostgreSQL\9.4\data,这个目录必须是空文件夹!。

相关推荐
青瓦梦滋6 小时前
Redis主从复制
服务器·数据库·redis·缓存·bootstrap
公子小六6 小时前
基于.NET的Windows窗体编程之WinForms数据持久化(1)
windows·microsoft·c#·.net·winforms
慧都小妮子7 小时前
Wyn商业智能国产数据库适配:数据接入、分析缓存与审计日志验证清单
数据库·数据分析·数据可视化·审计日志·商业智能
Joy T8 小时前
Redis Lua 原子限流:Lua 脚本、竞态条件与并发控制
数据库·redis·lua·限流·竞态条件·redis scripting
杨凯凡8 小时前
MySQL 死锁怎么排查?InnoDB 锁等待与 Spring Boot 整事务重试实战
数据库·spring boot·mysql
Aloudata8 小时前
Claude 做数据分析的这两年:一份复盘与发展线索
大数据·数据库·人工智能·数据挖掘·数据分析·dataagent
Decay__8 小时前
01_SQLServer 体系架构全解 —— 实例进程、关系引擎、SQLOS 与事务日志深入
运维·数据库·sql·mysql·架构
zhanghaha13148 小时前
C# 系列教程_12 字符串 string 保姆级系统教程(面向新手,大量示例 + 原理讲解)
开发语言·数据库·c#
韩曙亮9 小时前
【错误记录】安卓 adb 调试 5037 端口占用排查 ( adb 的三层结构 | 找出本机占用 5037 的进程 )
android·数据库·adb·安卓·错误记录
瑞雪兆丰年兮9 小时前
JavaWeb-day07-MySQL(DQL&多表设计)
java·开发语言·数据库·sql·mysql·javaweb·web