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

打开如下:

相关推荐
IT摆渡者3 小时前
MySQL性能巡检脚本分析报告
数据库·mysql
Lyyaoo.4 小时前
Redis基础
数据库·redis·缓存
杨云龙UP4 小时前
ODA登录ODA Web管理界面时提示Password Expired的处理方法_20260423
linux·运维·服务器·数据库·oracle
解救女汉子5 小时前
SQL触发器如何获取触发源应用名_利用APP_NAME函数追踪
jvm·数据库·python
weixin_520649876 小时前
数据库函数
数据库
Bert.Cai7 小时前
MySQL LPAD()函数详解
数据库·mysql
OnlyEasyCode8 小时前
Navicat 任务自动备份指定数据库
数据库
if else8 小时前
Redis 哨兵集群部署方案
数据库·redis
yejqvow128 小时前
Pandas 高效实现组内跨行时间戳匹配与布尔标记
jvm·数据库·python
了不起的云计算V8 小时前
从DeepSeek V4适配看国产算力的三个拐点
数据库·人工智能