文章目录
-
- Windows上安装PostgreSQL
-
- 一、下载安装包
- 二、安装步骤(图文详解)
- 三、验证安装成功
- [四、环境变量配置(让 psql 全局可用)](#四、环境变量配置(让 psql 全局可用))
- 五、创建第一个数据库和用户
- 六、允许远程连接(生产慎用)
- [七、常用命令(CMD / PowerShell)](#七、常用命令(CMD / PowerShell))
- [八、卸载 PostgreSQL](#八、卸载 PostgreSQL)
- 九、常见问题(FAQ)
- 十、学习资源
- postgresql创建数据库
-
- [1. 必填项(必须填)](#1. 必填项(必须填))
- [2. 常规选项(建议保持默认或留空)](#2. 常规选项(建议保持默认或留空))
- [3. 底部复选框](#3. 底部复选框)
- [4. 其他标签页](#4. 其他标签页)
Windows上安装PostgreSQL
适用于 Windows 10 / 11 / Server 2019+,支持 PostgreSQL 12~17(推荐最新稳定版)
一、下载安装包
官方下载地址(推荐):https://www.postgresql.org/download/windows/
选择 EnterpriseDB 提供的图形化安装器(EDB Installer ):
- 推荐版本 :最新稳定版(如
PostgreSQL 17) - 架构:x86-64(64 位)
- 组件建议 :勾选
PostgreSQL Server、pgAdmin 4、Command Line Tools
二、安装步骤(图文详解)
1、运行安装程序
双击下载的 .exe 文件(如 postgresql-17.0-1-windows-x64.exe)
2、欢迎界面 → Next
3、选择安装目录(默认即可)
C:\Program Files\PostgreSQL\17
建议不要安装在中文路径,避免编码问题。
4、选择组件
| 组件 | 是否勾选 | 说明 |
|---|---|---|
| PostgreSQL Server | 是 | 数据库核心 |
| pgAdmin 4 | 是 | 图形化管理工具(推荐) |
| Stack Builder | 否 | 可选,后续可运行 |
| Command Line Tools | 是 | psql、pg_dump 等命令 |
5、数据目录
默认:
C:\Program Files\PostgreSQL\17\data
可自定义,但避免权限问题(如 D:\pgdata)
6、设置超级用户密码(超级重要!)
密码:your_secure_password123
务必记住! postgres 用户是默认超级用户。
7、端口号
默认:5432
确保端口未被占用(如旧版 PG、MySQL 等)
8、高级选项 → 默认即可(Locale: Default locale)
9、准备安装 → Next → Install
10、完成安装
- 取消勾选**"Launch Stack Builder"**(除非你要额外驱动)
- 点击 Finish
三、验证安装成功
1、检查服务是否运行
按 Win + R → 输入 services.msc → 找到:
postgresql-x64-17
状态应为 Running
2、使用 psql 命令行测试
打开 命令提示符(CMD) 或 PowerShell:
psql -U postgres
输入密码 → 进入 psql:
postgres=# SELECT version();
postgres=# \l
postgres=# \q
3、打开 pgAdmin 4(图形界面 )
桌面或开始菜单找到 pgAdmin 4:
- 首次启动会要求设置主密码(用于保存连接密码)
- 右键
Servers → Register → Server - 填写:
- Name:
Local PostgreSQL - Host:
localhost - Port:
5432 - Username:
postgres - Password: 你设置的密码
- Name:
- 保存 → 双击连接
四、环境变量配置(让 psql 全局可用)
默认已自动配置,但可手动检查:
右键 此电脑 → 属性 → 高级系统设置 → 环境变量
在 系统变量 → Path 中应包含:
C:\Program Files\PostgreSQL\17\bin
这样你可以在任意目录运行 psql、pg_dump 等命令。
五、创建第一个数据库和用户
方法 1:使用 pgAdmin(推荐新手)
- 连接后右键
Databases → Create → Database - 名称:
myapp - 右键
Login/Group Roles→ 创建用户appuser
方法 2:使用命令行
psql -U postgres
sql
CREATE DATABASE myapp;
CREATE USER appuser WITH ENCRYPTED PASSWORD 'apppass123';
GRANT ALL PRIVILEGES ON DATABASE myapp TO appuser;
\q
测试连接:
psql -h localhost -U appuser -d myapp
六、允许远程连接(生产慎用)
1、修改 postgresql.conf
路径:
C:\Program Files\PostgreSQL\17\data\postgresql.conf
找到并修改:
# listen_addresses = 'localhost'
listen_addresses = '*'
2. 修改 pg_hba.conf
路径:
C:\Program Files\PostgreSQL\17\data\pg_hba.conf
在末尾添加:
# 允许局域网访问
host all all 192.168.1.0/24 md5
# 允许所有(不推荐,仅测试)
# host all all 0.0.0.0/0 md5
3. 重启服务
net stop postgresql-x64-17
net start postgresql-x64-17
4. 开放 Windows 防火墙
netsh advfirewall firewall add rule name="PostgreSQL 5432" dir=in action=allow protocol=TCP localport=5432
七、常用命令(CMD / PowerShell)
| 命令 | 说明 |
|---|---|
psql -U postgres |
进入数据库 |
pg_dump mydb > backup.sql |
备份 |
psql mydb < backup.sql |
恢复 |
createdb mydb |
创建数据库 |
dropdb mydb |
删除数据库 |
pg_ctl status |
查看状态 |
八、卸载 PostgreSQL
1、控制面板 → 程序 → 卸载 PostgreSQL
2、删除残留目录:
C:\Program Files\PostgreSQL\17
C:\Users\你的用户\AppData\Roaming\pgAdmin
3、删除数据目录(如 D:\pgdata)
九、常见问题(FAQ)
| 问题 | 解决方法 |
|---|---|
psql: could not connect to server |
检查服务是否启动、端口是否正确 |
FATAL: password authentication failed |
重置密码:ALTER USER postgres WITH PASSWORD 'newpass'; |
| 中文乱码 | 建库时指定UTF8编码,设置客户端编码:SET client_encoding = 'UTF8'; |
| 无法远程连接 | 检查 listen_addresses、防火墙、pg_hba.conf |
| 端口被占用 | 用`netstat -ano |
| 忘记密码 | 临时修改pg_hba.conf认证方式为trust,重启服务后无密码登录,执行ALTER USER postgres WITH PASSWORD '新密码';改回配置再重启。此操作风险高,改完务必恢复。 |
十、学习资源
官方文档:https://www.postgresql.org/docs/
pgAdmin 教程:https://www.pgadmin.org/
postgresql创建数据库

这是 PostgreSQL 的图形化管理工具( Navicate )中"新建数据库"的界面。对于大多数日常开发和学习场景,你只需要填写"数据库名",其他保持默认(留空或默认值)即可。
为了让你心里有底,我逐一解释一下这些选项一般怎么处理:
1. 必填项(必须填)
- 数据库名 (Database name) :
- 你已经填了
crawl_data,这很好。建议使用小写字母、数字和下划线 (例如crawl_data或my_project),不要用中文或特殊符号。这是你以后连接数据库时要用的名字。
- 你已经填了
2. 常规选项(建议保持默认或留空)
- 所有者 (Owner) :
- 留空 (默认会使用你当前登录的超级用户,比如
postgres)。 - 如果你有专门的业务账号(比如
app_user),可以在这里选择它。如果留空,以后也可以随时修改。
- 留空 (默认会使用你当前登录的超级用户,比如
- 范本 (Template) :
- 留空 (默认使用
template1)。 - 这是 PostgreSQL 创建数据库时的"模板"。除非你有特殊需求(比如公司有统一的基础表结构),否则永远留空。
- 留空 (默认使用
- 编码 (Encoding) :
- 留空 (默认会继承模板的编码,通常是
UTF8)。 - 强烈建议 :如果你的项目要存中文,一定要确保这里是 UTF8 。通常默认就是 UTF8,所以留空即可。如果你手动选,请选
UTF8。
- 留空 (默认会继承模板的编码,通常是
- 排序规则排序 (Collation) / 字符分类 (Character type) :
- 留空。
- 这决定了数据库如何排序和比较字符串。留空会使用系统的默认规则(通常是
en_US.UTF-8或C.UTF-8)。除非你的项目有严格的本地化排序需求(比如必须按中文拼音排序),否则不要动。
- 表空间 (Tablespace) :
- 留空 (默认使用
pg_default)。 - 这是数据库文件在磁盘上的物理存储位置。除非你的服务器挂了多个硬盘,需要把数据分散存储,否则永远留空。
- 留空 (默认使用
- 连接限制 (Connection limit) :
- -1(默认值)。
-1表示不限制连接数。对于开发环境,保持 -1 即可。如果是生产环境且服务器内存有限,可以设置为具体数字(比如 100),防止连接过多把数据库拖垮。
3. 底部复选框
- 允许连接 (Allow connections) :
- 勾选(默认)。
- 如果不勾选,这个数据库创建后谁也无法连接,通常只有做维护时才取消勾选。
- 是范本 (Is template) :
- 不勾选(默认)。
- 如果勾选,这个数据库就会变成"模板",别人创建新数据库时可以复制它。你只是建个普通业务库,不要勾选。
4. 其他标签页
- 注释 (Comment) :可以写一段描述,比如"爬虫数据存储库"。选填。
- SQLPreview:点击这个标签页,你可以看到根据你当前填写的信息生成的 SQL 语句。如果你熟悉 SQL,可以直接看这里确认无误。
💡 给你的实操建议
建议你:
- 数据库名 :
crawl_data - 所有者:留空(用默认的 postgres 用户)
- 编码:留空(确保是 UTF8)
- 其他全部留空或默认。
- 直接点击右下角的 "确定"。
创建成功后,你就可以在左侧的数据库列表里看到 crawl_data 了。接下来,你可以右键点击它,选择"查询工具"来执行 SQL 建表。