PostgreSQL基础之安装

文章目录

  • [1 PostgreSQL安装](#1 PostgreSQL安装)
    • [1.1 官网安装](#1.1 官网安装)
      • [1.1.1 下载](#1.1.1 下载)
      • [1.1.2 exe安装](#1.1.2 exe安装)
      • [1.1.3 zip安装](#1.1.3 zip安装)
    • [1.2 Scoop安装](#1.2 Scoop安装)
      • [1.2.1 查询PostgreSQL](#1.2.1 查询PostgreSQL)
      • [1.2.2 安装](#1.2.2 安装)
      • [1.2.3 修改密码](#1.2.3 修改密码)
    • [1.3 使用pgAdmin](#1.3 使用pgAdmin)

1 PostgreSQL安装

1.1 官网安装

官网:https://www.postgresql.org/

1.1.1 下载




1.1.2 exe安装




数据库相关数据默认存放在这里

设置密码,账号默认为postgres

数据库服务监听端口号,默认端口号即可

系统语言/地区, 建议选择默认

1.1.3 zip安装

下载解压:

bash 复制代码
解压到 C:\pgsql
# 解压后结构:
C:\pgsql\
├── bin\          # 可执行文件
├── lib\          # 库文件
├── share\        # 共享文件、扩展
├── symbols\      # 调试符号(可删除)
└── pgAdmin 4\    # 图形工具(部分版本)

初始化数据库集群

这是最关键的一步,创建数据目录和系统表:

bash 复制代码
# 创建数据目录
mkdir C:\pgsql\data

# 初始化(指定编码、用户名、密码)
# -D: 数据目录 -E: 编码 UTF8 -U: 超级用户名(默认 postgres) -W: 交互式输入密码(推荐)
C:\pgsql\bin\initdb.exe -D C:\pgsql\data -E UTF8 -U postgres -W 

输出示例:
The files belonging to this database system will be owned by user "你的用户名".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
...
Success. You can now start the database server using:

    "C:\pgsql\bin\pg_ctl" -D "C:\pgsql\data" -l logfile start

启动 PostgreSQL

bash 复制代码
方式一:前台启动(调试/临时)

# 前台运行,Ctrl+C 停止
C:\pgsql\bin\postgres.exe -D C:\pgsql\data

方式二:后台启动(推荐)
# 后台服务方式启动
C:\pgsql\bin\pg_ctl.exe -D C:\pgsql\data start -l C:\pgsql\log\pg.log
这里得log 文件夹要存在,不然第一次可能报:could not open log file

如果启动时不想加 -D 指定数据库,那么添加环境变量:PGDATA来指定数据目录

# 停止
C:\pgsql\bin\pg_ctl.exe -D C:\pgsql\data stop

# 重启
C:\pgsql\bin\pg_ctl.exe -D C:\pgsql\data restart

方式三:注册为 Windows 服务(生产环境)
# 以管理员身份运行 PowerShell
C:\pgsql\bin\pg_ctl.exe register -N "PostgreSQL" -D "C:\pgsql\data" -S auto

# 启动服务
net start PostgreSQL

# 停止服务
net stop PostgreSQL

# 删除服务
C:\pgsql\bin\pg_ctl.exe unregister -N "PostgreSQL"

连接测试

bash 复制代码
# 使用 psql 连接
C:\pgsql\bin\psql.exe -U postgres -d postgres

# 或者指定主机(本地)
C:\pgsql\bin\psql.exe -h localhost -U postgres -d postgres

进入 psql 后:
-- 查看版本
SELECT version();

-- 修改密码 还需要改data目录下的  pg_hba.conf 文件把里面的 trust 改为 scram-sha-256 这样登录就需要密码而非trust
\password postgres



-- 列出数据库
\l

-- 创建数据库
CREATE DATABASE mydb;

-- 退出
\q

1.2 Scoop安装

点击了解Win环境下包管理工具

1.2.1 查询PostgreSQL

bash 复制代码
C:\Users\test>scoop search postgresql
Results from local buckets...

Name         Version Source   Binaries
----         ------- ------   --------
postgresql   18.2    main
postgresql10 10.23   versions
postgresql11 11.22   versions
postgresql12 12.22   versions
postgresql13 13.23   versions
postgresql14 14.21   versions
postgresql15 15.16   versions
postgresql16 16.12   versions
postgresql17 17.8    versions

1.2.2 安装

bash 复制代码
C:\Users\test>scoop install main/postgresql

Installing 'postgresql' (18.3) [64bit] from 'main' bucket
proxy: https://get.enterprisedb.com/postgresql/postgresql-18.3-1-windows-x64-binaries.zip
Starting download with aria2 ...
Download: Download Results:
Download: gid   |stat|avg speed  |path/URI
Download: ======+====+===========+=======================================================
Download: 55d75c|OK  |    24MiB/s|D:/Scoop/cache/postgresql#18.3#f0c3152.zip
Download: Status Legend:
Download: (OK):download completed.
Checking hash of postgresql-18.3-1-windows-x64-binaries.zip ... ok.
Extracting postgresql-18.3-1-windows-x64-binaries.zip ... done.
Linking D:\Scoop\apps\postgresql\current => D:\Scoop\apps\postgresql\18.3
Creating shortcut for pgAdmin 4 (pgAdmin4.exe)
Adding D:\Scoop\apps\postgresql\current\bin to your path.
Persisting data
Running post_install script...属于此数据库系统的文件宿主为用户 "test".
此用户也必须为服务器进程的宿主.

数据库集簇将以区域环境设置 "C" 进行初始化.
默认的文本搜索配置将被设为 "english".

允许生成数据页校验和.

正在修复已存在目录 D:/Scoop/apps/postgresql/current/data 的权限 ... 成功
正在创建子目录 ... 成功
正在选择动态共享内存实现 ... windows
正在选择默认最大连接数 (max_connections) ... 100
正在选择默认共享缓冲区 (shared_buffers) ... 128MB
正在选择默认时区 ... Asia/Shanghai
正在创建配置文件 ... 成功
正在运行启动脚本 ... 成功
正在执行启动脚本后续初始化 ... 成功
正在同步数据到磁盘 ... 成功

initdb: 警告: 为本地连接启用 "trust" 身份验证
initdb: 提示: 你可以通过编辑 pg_hba.conf 或下次运行 initdb 时使用 -A 或者 --auth-local 和 --auth-host 选项进行更改.

成功。你现在可以用下面的命令开启数据库服务器:

    ^"D^:^\Scoop^\apps^\postgresql^\current^\bin^\pg^_ctl^" -D ^"D^:^\Scoop^\apps^\postgresql^\current^\data^" -l logfile start

done.
'postgresql' (18.3) was installed successfully!
Notes
-----
Run 'pg_ctl start' to start the database and 'pg_ctl stop' to stop it.
Register it as a service by running 'pg_ctl register -N PostgreSQL' from an elevated shell.
Default superuser login: postgres, password: <blank>

1.2.3 修改密码

启动

bash 复制代码
pg_ctl start

等待服务器进程启动 ....2026-02-28 11:15:24.197 CST [10924] LOG:  starting PostgreSQL 18.3 on x86_64-windows, compiled by msvc-19.44.35222, 64-bit
2026-02-28 11:15:24.201 CST [10924] LOG:  listening on IPv6 address "::1", port 5432
2026-02-28 11:15:24.201 CST [10924] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2026-02-28 11:15:24.522 CST [29296] LOG:  database system was shut down at 2026-02-28 11:14:12 CST
2026-02-28 11:15:24.567 CST [10924] LOG:  database system is ready to accept connections
 完成
服务器进程已经启动

登录修改密码

bash 复制代码
登录
psql -U postgres -d postgres

修改密码
\password postgres
Enter new password for user "postgres":
再输入一遍:

修改完密码记得把数据目录data下的 pg_hba.conf改下,把里面的 trust 改成 scram-sha-256trust是不需要密码的

1.3 使用pgAdmin

打开如下:

相关推荐
程序员-Benothing4 分钟前
数据库的脏读、不可重复读和幻读:从面试标准答案到源码级原理
数据库·面试·职场和发展
wangchunyu1146 分钟前
Elasticsearch 入门与实战:Spring Boot 3 + ES 8 从零搭建商品搜索服务
大数据·数据库·spring boot·elasticsearch
给AI剪纸的打工人8 分钟前
OpenCode怎么接第三方API?自定义Provider与Responses配置实战
linux·数据库·人工智能
裕晟资质规划19 分钟前
西安政务信息化项目涉密系统集成资质准入解析:甲级/乙级承接边界、等保差异与合规承接路径
大数据·运维·数据库·人工智能·安全·政务
yandong63430 分钟前
redis添加到win服务
数据库·redis·缓存
我叫小米粒32 分钟前
可维护的智能体协作空间:字段建模、提示约束、测试集和上线检查
数据库·aigc·agent·智能体交付
数智启示录43 分钟前
Flink CDC 机制精讲(四):一条 SQLServer CDC 事件如何保持顺序 【面试宝典】
数据库·面试·sqlserver·flink
张文君1 小时前
ubuntu26.04从ext4到raid1+lvm启动-最终版-有这个方法系统损坏还焦虑个啥
数据库
今天AI了吗1 小时前
AI工作流的自动化趋势:从手动实验到自主Agent的研究范式转变
运维·数据库·人工智能·sql·机器学习·自动化·github
m0_579146651 小时前
PostgreSQL+Milvus分层存储架构:双写一致性与CAP理论取舍分析
postgresql·架构·milvus·cap