首页 / PostgreSQL 入门教程 / 安装 PostgreSQL(Win/macOS/Linux)

PostgreSQL 入门教程

安装 PostgreSQL(Win/macOS/Linux)

本教程共 50 篇 · 第 2 篇 · 更新于 2026-07-31 · 约 8 分钟阅读

PostgreSQLPostgreSQL 入门教程安装教程PostgreSQL 18数据库环境

2. 安装 PostgreSQL(Win/macOS/Linux)

本节目标:学完你能在自己电脑上装好 PostgreSQL 18,并确认它能正常启动、能连得进去。

装数据库是第一步,也是最容易卡住新手的一步。别担心,我按平台分开讲,你照着自己系统走就行。本书全程以 PostgreSQL 18(18.4)为准。

Note

安装包从官网 https://www.postgresql.org/download/ 获取。Windows 和 macOS 桌面用户推荐用 EnterpriseDB 出的图形安装包,一路点下一步最省事。Linux 用户用系统包管理器更顺手。

安装前先弄清几个概念

动手之前,先分清三个东西,免得后面迷糊:

  • 服务器(Server):真正存数据、处理查询的后台进程。你平时看不见它,它在后台跑。
  • 客户端(Client):你用来连服务器的工具,比如 psql(命令行)和 pgAdmin(图形)。
  • 数据目录(Data Directory):服务器把数据库文件存到硬盘上的那个文件夹。

安装时你其实是在装「服务器 + 客户端 + 一套默认配置」。装完之后,客户端连本机的服务器,就能开始干活了。

通用流程

不管哪个系统,安装基本都这三步:

  1. 下载对应平台的安装包。
  2. 运行安装,设置超级用户(postgres)密码和端口。
  3. 验证能连上数据库。

端口默认是 5432,除非被占用,否则不要改。超级用户密码请务必记牢,后面连接都要用。

Warning

postgres 这个超级用户权限极大,能删库、能改系统设置。它的密码别设得太简单,更别写进会公开分享的代码里。

Windows 安装

  1. 打开官网下载页,选 Windows,下载 x86-64 安装包。
  2. 双击运行,点 Next。
  3. 选择安装目录,组件全部勾上即可。
  4. 设置数据目录(用默认就行)。
  5. 设置超级用户 postgres 的密码。
  6. 端口保持 5432 默认。
  7. 区域(Locale)用默认,点 Next 开始安装,结束点 Finish。

安装完后,开始菜单里会出现两样东西:SQL Shell (psql)pgAdmin 4。前者是命令行,后者是图形界面,后面两章都会讲。

Tip

想在任何命令行直接敲 psql,可以把安装目录下的 bin 文件夹加进系统 PATH。路径类似 C:\Program Files\PostgreSQL\18\bin。加好后在命令提示符里运行 psql --version 能显示版本即成功。

Windows 上的另一种选择是用 Chocolatey 或 Winget 这类包管理器,但新手用图形安装包最稳,不推荐折腾命令行装。

macOS 安装

macOS 有两种常见装法。

方式一:EnterpriseDB 安装包。 下载 .dmg 文件双击,按向导填密码、端口等,一路默认即可。

方式二:Homebrew(推荐给开发者)。 如果你装了 Homebrew,一行命令搞定:

brew install postgresql@18

装完用 brew 启动服务:

brew services start postgresql@18

如果想只在当前终端临时跑、不开机自启,可以用:

pg_ctl -D /opt/homebrew/var/postgresql@18 start
Note

Apple 芯片(M1/M2/M3)的 Homebrew 目录通常是 /opt/homebrew,Intel 芯片是 /usr/local。如果上面的路径不对,用 brew info postgresql@18 查一下它告诉你数据目录在哪。

Linux 安装

以 Ubuntu 为例,用 apt 直接装:

sudo apt-get update
sudo apt-get install postgresql postgresql-client

安装过程中系统会自动创建一个名为 postgres 的超级用户,初始密码为空。你不用自己设,后面用 sudo -i -u postgres 切换过去即可。

Note

在 Linux 上,Postgres 装好后会自动创建一个操作系统用户 postgres。数据库里的超级用户也叫 postgres,两者名字一样但不是一回事:一个是系统账号,一个是数据库账号。这是 Linux 上最容易混淆的一点。

CentOS / Rocky / RHEL 这类系统用 dnf:

sudo dnf install postgresql-server postgresql
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql
Tip

不同 Linux 发行版自带的 Postgres 版本可能偏旧。想要最新的 18,可以去官网找对应发行版的官方仓库源,比系统默认源更新更及时。

服务启停

装好之后,数据库服务(后台进程)需要是运行状态你才能连。

Linux(apt 安装):

sudo /etc/init.d/postgresql start    # 启动
sudo /etc/init.d/postgresql stop     # 停止
sudo /etc/init.d/postgresql restart  # 重启

较新的 Ubuntu 也支持 systemctl:

sudo systemctl start postgresql
sudo systemctl stop postgresql

macOS(brew 安装):

brew services start postgresql@18
brew services stop postgresql@18

Windows: 安装时默认已注册为系统服务并自动启动。可在「服务」管理里启动/停止 postgresql-x64-18

初始化数据目录

如果你是从源码安装,或者需要手动建数据目录,要用 initdb 命令。大多数桌面安装包已经帮你初始化好了,这步可跳过。手动初始化的样子是这样的:

initdb -D /path/to/data_directory

-D 指定数据文件存放的位置。这个目录一旦初始化,就装着你所有的数据库文件了。

Warning

数据目录权限要求很严,必须属于运行 Postgres 的那个系统用户,且其他用户不能访问。用 initdb 时它也会检查并提醒你。千万不要用 root 去初始化,否则服务器会拒绝启动。

验证安装

最简单的方法,用 psql 连上执行一条 SQL:

SELECT version();

正常会返回类似下面的信息,能看到版本号就说明装好了:

                                         version
------------------------------------------------------------------------------
 PostgreSQL 18.4 on x86_64-pc-linux-gnu, compiled by gcc, 64-bit
(1 row)

也可以只看客户端版本:

psql --version

显示 psql (PostgreSQL) 18.4 即正确。

再验一下服务端口在不在监听:

# Linux / macOS
ss -nlt | grep 5432

# Windows PowerShell
netstat -an | findstr 5432

能看到 5432 端口处于 LISTEN 状态,就说明服务器确实在跑了。

Tip

连不上的常见原因:服务没启动、端口被改、密码记错。先确认服务在跑,再核对端口和密码,基本都能解决。

确认装的是 18 而不是旧版

有时候系统里已经有个老版本 Postgres,你装了 18 却连的还是老的。验一下:

psql --version

如果显示不是 18.x,说明 PATH 里排在前面的还是旧版。Windows 上调整 PATH 顺序,macOS/Linux 上用 which psql 看它指向哪,确认路径对得上。

Tip

一台机器可以同时装多个大版本的 Postgres,它们用不同端口区分(比如 5432、5433)。连的时候用 -p 指定端口,就不会连错版本。

安装后的目录大致长什么样

不用死记,有个印象即可:

  • bin/:psql、pg_ctl、initdb 等可执行程序所在地。
  • data/:数据目录,所有库文件都在这,备份和迁移都围绕它。
  • lib/:运行依赖的动态库。

记住 data/ 最重要。哪天要搬家、做备份,拷的就是它(当然要在服务停掉时拷)。

常见安装卡点

我把新手最容易卡的地方列出来,对号入座:

  • 安装到最后一步卡住:多半是杀毒软件拦截,或装到了带中文/空格的路径。关掉杀软、改用默认英文路径重试。
  • Windows 提示「另一个程序在使用」:可能旧版没卸干净,先卸载旧版再装。
  • macOS 提示「无法打开,因为来自身份不明的开发者」:去系统设置 → 隐私与安全性,点「仍要打开」。
  • Linux 包管理器装完连不上:多半是服务没自动起,用上面的启停命令手动拉起。
  • 端口 5432 被占用:换端口最省事,连接时记得也用新端口。

想干净重来怎么办

如果装坏了想重装,Windows/macOS 从控制面板或应用程序里卸载即可;Linux 用包管理器卸载并删掉数据目录:

sudo apt-get remove --purge postgresql postgresql-client
sudo rm -rf /var/lib/postgresql /etc/postgresql
Warning

删数据目录等于删掉所有库,重装前确认里面没有要保留的数据。新手练习环境随意,生产环境绝不可这么干。

下一章我们正式认识命令行客户端 psql,学会怎么连进去。