马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在 Windows 上装 PostgreSQL,绕不开两件事:一是装完整服务器还是只装 libpq 客户端库,二是装完初始化时那一堆密码到底哪几个。这篇把安装全流程、初始化步骤、常见报错,以及 PostgreSQL 的核心特性和适用场景一次性讲清楚,按 15.x 版本实测过,踩坑的地方都标出来了。
先看清两套安装路线怎么选
目录结构如下:
- 方法 1:安装完整的 PostgreSQL 服务器(推荐)
- 一、进入官网;二、安装;三、初始化 PostgreSQL;四、安装过程中大概会遇到的问题
- 方法 2:仅安装 PostgreSQL 客户端库(无需安装服务器);包含步骤、验证安装、在 Python 中使用 psycopg 的注意事项
- PostgreSQL 的核心特点;PostgreSQL 适合的场景;总结一句话
方法 1:安装完整 PostgreSQL 服务器
这是最简单的路线,装 PostgreSQL 的时候会自动把 libpq 库和开发文件一起带上,不用另外补。
第一步:进入官网下载
访问 PostgreSQL 官方下载页面 PostgreSQL: Downloads,选择适合你系统的版本(如 PostgreSQL 15.x)。
第二步:按四小步完成安装
2.1 选择安装位置
2.2 选择组件(可以默认全勾选)
2.3 设置密码
给默认的 postgres 用户设置密码,示例里填的是 123456。
后面除了个别步骤,全部点【next】就行。
系统语言和地域建议保持默认。这里有个真实的坑:如果选了中文,后面大概率会出问题,我第一次选中文就报错了,只好卸载重装。
2.4 安装完成
装完之后,libpq 库会自动包含在下面这些目录里:
- # libpq 动态链接库(DLL)
- D:\computer_soft\PostgreSQL\bin\libpq.dll
- # 头文件(C 头文件)
- D:\computer_soft\PostgreSQL\bin\include
复制代码
到这里就算装好了,最后那个启动选项勾掉就行。
第三步:初始化 PostgreSQL
第一次打开 pgAdmin 会提示设置密码。这个密码是 pgAdmin 自己的密码,以后连接服务器时如果要保存密码,就会被 pgAdmin 用它加密和解密。注意这里输入的并不是安装过程中给超级用户 postgres 设置的那个密码,两个是分开的。
登录进去就能看到数据库界面了。
第四步:安装中常碰到的两类问题
有朋友下载完找不到对应的 Server 服务,那是下载过程出了差错,我第一次也遇到过。建议直接删掉重新下载,否则是跑不起来的。
另一类是编码报错。
出现这个错误的原因,大概是你电脑的登录用户名用的是中文,需要改成英文。操作路径是:右击"我的电脑",点"管理"找到"计算机管理",再点"本地用户与组",找到当前登录账号,右击重命名为英文即可。
方法 2:只装客户端库,不装服务器
如果不需要完整的 PostgreSQL 服务,可以直接下载独立的客户端库。
三个步骤
- 下载 PostgreSQL 客户端库 访问 EDB(EnterpriseDB)的独立客户端工具下载页面,下载名为 postgresql-15.x-x-windows-x64-binaries.zip 的压缩包。
- 解压文件 把压缩包解压到目标目录,例如 C:\pgsql。
- 配置环境变量 把 libpq.dll 所在的路径加到系统环境变量 PATH 里:
- # 假设解压到 D:\pgsql
- D:\pgsql\bin
复制代码
验证安装
- 检查 libpq.dll 打开命令提示符,运行下面这条命令确认 libpq.dll 是否存在:
输出应该类似:
- C:\Program Files\PostgreSQL\15\bin\libpq.dll
复制代码 - 检查头文件 确认头文件目录(如 C:\Program Files\PostgreSQL\15\include)下面有这些文件:
在 Python 里用 psycopg 的注意事项
如果用 Python 库 psycopg(psycopg2 或 psycopg3),要保证:
- 系统能找到 libpq.dll。遇到 ImportError 时,把 PostgreSQL 的 bin 目录(如 C:\Program Files\PostgreSQL\15\bin)加进 PATH 环境变量;
- 直接使用 psycopg[binary] 包(推荐):
- pip install psycopg[binary]
复制代码
PostgreSQL 的八个核心特点
PostgreSQL(常简称为 Postgres)是一款功能强大、开源免费的对象—关系型数据库管理系统(ORDBMS)。
1. 标准 + 扩展能力极强
- 100% 支持 SQL 标准(SQL:2023)
- 既可以像传统数据库一样用,也能扩展成 NoSQL、文档库、图数据库之类的用法。
2. 强大的复杂查询能力
- 原生支持下面这几类查询:
- 子查询
- 窗口函数(OVER() 等)
- 公用表表达式(CTE)
- 并行查询
- 查询优化器很聪明,适合大数据分析和复杂业务系统。
3. 原生支持 JSON / JSONB(半结构化数据)
- 可以直接当文档数据库用,甚至能顶替 MongoDB;
- JSONB 支持索引和全文搜索,非常强。
4. 扩展机制灵活
- 可以动态加载插件,比如:
- PostGIS:地理信息(GIS)扩展
- pg_trgm:模糊搜索、字符串相似度匹配
- timescaledb:时序数据库扩展
- uuid-ossp:自动生成 UUID
- 甚至还能自己定义数据类型、函数、操作符、索引方式。
5. 支持多种数据类型(对象关系特性)
- 支持数组、枚举、复合类型、范围类型(range)、网络地址、几何类型等;
- 比如可以把某个字段定义成 [1,2,3] 这样的数组类型,查询时跟操作普通表一样。
6. 事务一致性好(ACID + MVCC)
- 支持真正的并发控制(多版本并发控制 MVCC);
- 读写不需要加锁(不像 MySQL 的 InnoDB 需要加行锁)。
7. 多语种存储过程与函数支持
- 支持用 SQL、PL/pgSQL、Python(plpython)、JavaScript(plv8)、C、R 等多种语言写函数。
8. 开源、社区活跃、能长期用下去
- 文档、教程、社区资源非常充足;
- 版本稳定,每个版本都有长期的更新维护周期;
- Google、Apple、Reddit、GitLab 这些公司都在大规模使用。
哪些场景适合用 PostgreSQL
场景是否适合分析复杂业务系统✅ 非常适合支持复杂事务、数据结构数据仓库 / BI✅ 很强并行查询优化器 + 分区JSON 文档存储✅ 比 MongoDB 更合适JSONB 支持索引、事务地理数据处理✅ 有 PostGIS 扩展非常专业时间序列数据✅ 用 TimescaleDB 扩展高效高频写入、轻事务系统⛔ MySQL 更合适PostgreSQL 更看重一致性和复杂性
总结一句话
PostgreSQL 是一款高度可靠、功能丰富、扩展灵活的数据库,既能当传统 RDBMS 用,也能胜任 NoSQL 和数据分析任务。
Windows 上装 PostgreSQL,最难的不是安装本身,而是分清"安装时 postgres 的密码"和"pgAdmin 首次启动密码"是两回事。
编辑提示:只做开发不想跑服务的话直接走方法 2,多装一个 Server 反而要给中文用户名和 5432 端口额外操心。
|