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

打开如下:

相关推荐
難釋懷5 分钟前
Redis网络模型-Redis是单线程的吗?为什么使用单线程
网络·数据库·redis
2301_781571426 分钟前
mysql如何配置自增ID预留_mysql innodb_autoinc_lock_mode参数
jvm·数据库·python
解决问题no解决代码问题10 分钟前
Quartz 1.6.5
数据库·servlet·oracle
桂花很香,旭很美14 分钟前
Redis-智能体开发中的大杀器
数据库·redis·缓存
dinglu1030DL21 分钟前
CSS如何实现背景颜色的棋盘格分布_利用repeating-gradient
jvm·数据库·python
2303_8212873825 分钟前
Golang reflect反射怎么用_Golang反射教程【通俗】
jvm·数据库·python
Mike117.43 分钟前
GBase 8c 里 search_path 没管住,SQL 可能跑到另一个对象上
数据库·sql·postgresql
升鲜宝供应链及收银系统源代码服务1 小时前
升鲜宝云商品库功能设计与数据库表结构详细文档(一)---升鲜宝生鲜配送供应链管理系统源代码服务
数据库·生鲜配送源代码·供应链源代码·生鲜供应链源代码·升鲜宝供应链管理系统源代码·b2b客户订货源代码
2301_783848651 小时前
如何用 IDBKeyRange 范围匹配检索特定区间的本地数据
jvm·数据库·python
解决问题no解决代码问题1 小时前
【无标题】
数据库