[1369]Windows上安装PostgreSQL

文章目录

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: 你设置的密码
  • 保存 → 双击连接

四、环境变量配置(让 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,可以直接看这里确认无误。

💡 给你的实操建议

建议你:

  1. 数据库名 :crawl_data
  2. 所有者:留空(用默认的 postgres 用户)
  3. 编码:留空(确保是 UTF8)
  4. 其他全部留空或默认。
  5. 直接点击右下角的 "确定"。

创建成功后,你就可以在左侧的数据库列表里看到 crawl_data 了。接下来,你可以右键点击它,选择"查询工具"来执行 SQL 建表。

相关推荐
doujiaozh1 小时前
Win7 复活记:用 3 个补丁让 13 年前的老电脑跑通 Kimi API
windows
一只积极向上的小咸鱼3 小时前
第一性原理思考:从拆解问题到用实验检验答案
数据库
这个DBA有点耶3 小时前
时序数据库InfluxDB高基数问题深度拆解:内存索引膨胀机制与OOM完整链路
数据库·架构·dba
加油yx4 小时前
MySQL数据类型
数据库·mysql
蓝胖的四次元口袋4 小时前
Redis知识梳理(1)
数据库·redis·缓存
夜雪一千4 小时前
MySQL 数据加密实战:从传输、存储到字段级加密,分清场景不踩坑
数据库·mysql
wefg15 小时前
【Redis】C++ 自定义客户端
数据库·redis·缓存
这个DBA有点耶5 小时前
为什么UPDATE比SELECT危险得多?锁范围等于扫描行数
数据库·架构·代码规范
天国梦6 小时前
国密门禁品牌怎么选?2026年最新3个避坑要点
运维·服务器·数据库·python